@ file : Suppress (" UN RE ACH ABLE _ CODE ") Ċ Ċ package Ġcom . github . m cel de en . f pkt . test Ċ Ċ import Ġcom . github . m cel de en . f pkt .* Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠEither Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Map () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right (" 1 2 3 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ). map Ġ{ Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left ( 1 2 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left ( 1 2 3 ). map Ġ{ Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Map Left () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left (" 1 2 3 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left ( 1 2 3 ). map Left Ġ{ Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ). map Left Ġ{ Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest B imap () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left (" 1 2 3 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left ( 1 2 3 ). b imap ({ Ġit . toString () Ġ}, Ġ{ Ġit . toInt () Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right (" 1 2 3 "). b imap ({ Ġit . toString () Ġ}, Ġ{ Ġit . toInt () Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Apply () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ({ Ġv : ĠInt Ġ-> Ġv Ġ+ Ġ 1 Ġ}). ap ( Either . Right ( 1 2 3 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Flat Map () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left (" 1 2 3 "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ). flatMap Ġ{ ĠEither . Left ( it . toString ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left ( 1 2 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left ( 1 2 3 ). flatMap Ġ{ ĠEither . Left ( it . toString ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Alt () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ). alt ( Either . Right ( 4 5 6 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 4 5 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left (" error "). alt ( Either . Right ( 4 5 6 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Either () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ). either ({ Ġe : ĠString Ġ-> Ġe . toInt () Ġ}, Ġ{ Ġi : ĠInt Ġ-> Ġi Ġ+ Ġ 1 Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 5 6 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left (" 4 5 6 "). either ({ Ġe : ĠString Ġ-> Ġe . toInt () Ġ}, Ġ{ Ġi : ĠInt Ġ-> Ġi Ġ+ Ġ 1 Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet OrElse () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ). getOrElse Ġ{ Ġe : ĠString Ġ-> Ġe . toInt () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 5 6 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left (" 4 5 6 "). getOrElse Ġ{ Ġe : ĠString Ġ-> Ġe . toInt () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet OrDefault () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ). get OrDefault ( 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left (" 4 5 6 "). get OrDefault ( 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet OrNull () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Right ( 1 2 3 ). get OrNull () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEither . Left (" 4 5 6 "). get OrNull () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ