package Ġio . red green . all Ċ Ċ import Ġarrow . core . Tuple 4 Ċ import Ġarrow . core . Tuple 5 Ċ import Ġarrow . core . Tuple 7 Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġio . red green . all . five . of Ċ import Ġio . red green . all . four . of Ċ import Ġio . red green . all . one . of Ċ import Ġio . red green . all . three . of Ċ import Ġio . red green . all . two . of Ċ import Ġobjects . Age Ċ import Ġobjects . C offee Ċ import Ġobjects . Gr ind Size Ċ import Ġobjects . Ro ast Ċ import Ġorg . approval tests . Appro vals Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠAll Test Ġ{ ĊĠ Ġ@ Nested ĊĠ Ġinner Ġclass ĠSingle Property Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` value Ġobjects `() Ġ{ ĊĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠ Ġval Ġa ges Builder Ġ= ĠAll . of ( Age :: class ) ĊĠĠĠĠĠĠĠ Ġ. property (" value ", Ġ 1 , Ġ 2 , Ġ 3 ) ĊĊĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠ Ġval Ġa ges Ġ= Ġa ges Builder . generate () ĊĊĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠ ĠassertThat ( ages ) ĊĠĠĠĠĠĠĠ Ġ. contains Exactly ( Age ( 1 ), ĠAge ( 2 ), ĠAge ( 3 )) ĊĠĠĠĠĠĠĠ Ġ. in Order () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` age Ġwith Ġone Ġvalue `() Ġ{ ĊĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠ Ġval Ġage Builder Ġ= ĠAll . of ( Age :: class ) ĊĠĠĠĠĠĠĠ Ġ. property (" value ", Ġ 1 ) ĊĊĠĠĠĠĠ Ġ// Ġwhen Ġ& Ġthen ĊĠĠĠĠĠ ĠassertThat ( age Builder . generate ()) ĊĠĠĠĠĠĠĠ Ġ. contains Exactly ( Age ( 1 )) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Nested ĊĠ Ġinner Ġclass ĠTwo Properties Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġpairs () Ġ{ ĊĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠ Ġval Ġpairs Builder Ġ= ĠAll . of ( Pair :: class ) ĊĠĠĠĠĠĠĠ Ġ. property (" first ", Ġ" A ", Ġ" B ") ĊĠĠĠĠĠĠĠ Ġ. property (" second ", Ġ 1 , Ġ 2 , Ġ 3 ) ĊĊĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠ Ġval Ġpairs Ġ= Ġpairs Builder . generate () ĊĊĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠ ĠassertThat ( pairs ) ĊĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠ Ġ" A " Ġto Ġ 1 , ĊĠĠĠĠĠĠĠĠĠ Ġ" A " Ġto Ġ 2 , ĊĠĠĠĠĠĠĠĠĠ Ġ" A " Ġto Ġ 3 , ĊĠĠĠĠĠĠĠĠĠ Ġ" B " Ġto Ġ 1 , ĊĠĠĠĠĠĠĠĠĠ Ġ" B " Ġto Ġ 2 , ĊĠĠĠĠĠĠĠĠĠ Ġ" B " Ġto Ġ 3 , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. in Order () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Nested ĊĠ Ġinner Ġclass ĠThree Properties Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcoffee () Ġ{ ĊĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠ Ġval Ġcoffee Builder Ġ= ĠAll . of ( C offee :: class ) ĊĠĠĠĠĠĠĠ Ġ. property (" est ate ", Ġ" Att ikan ") ĊĠĠĠĠĠĠĠ Ġ. property (" roast ", ĠRo ast . Light , ĠRo ast . Medium , ĠRo ast . Dark ) ĊĠĠĠĠĠĠĠ Ġ. property (" gr ind Size ", ĠGr ind Size . F ine , ĠGr ind Size . Medium F ine , ĠGr ind Size . Medium , ĠGr ind Size . Co arse ) ĊĊĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠ Ġval Ġcoffee Ġ= Ġcoffee Builder . generate () ĊĊĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠ ĠassertThat ( coffee ) ĊĠĠĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Light , ĠGr ind Size . F ine ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Light , ĠGr ind Size . Medium F ine ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Light , ĠGr ind Size . Medium ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Light , ĠGr ind Size . Co arse ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Medium , ĠGr ind Size . F ine ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Medium , ĠGr ind Size . Medium F ine ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Medium , ĠGr ind Size . Medium ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Medium , ĠGr ind Size . Co arse ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Dark , ĠGr ind Size . F ine ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Dark , ĠGr ind Size . Medium F ine ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Dark , ĠGr ind Size . Medium ), ĊĠĠĠĠĠĠĠĠĠ ĠC offee (" Att ikan ", ĠRo ast . Dark , ĠGr ind Size . Co arse ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ. in Order () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Nested ĊĠ Ġinner Ġclass ĠFour Properties Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` tuple Ġ 4 `() Ġ{ ĊĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠ Ġval Ġtuple 4 Builder Ġ= ĠAll . of ( Tuple 4 :: class ) ĊĠĠĠĠĠĠĠ Ġ. property (" first ", Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġ. property (" second ", Ġ' A ', Ġ' B ', Ġ' C ', Ġ' D ') ĊĠĠĠĠĠĠĠ Ġ. property (" third ", Ġtrue , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ. property (" four th ", Ġ 1 . 0 , Ġ 2 . 0 , Ġ 3 . 0 ) ĊĊĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠ Ġval Ġtuple 4 s Ġ= Ġtuple 4 Builder . generate () ĊĊĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠ ĠAppro vals . verify All ( tuple 4 s . to Typed Array ()) Ġ{ Ġ( first , Ġsecond , Ġthird , Ġfourth ) Ġ-> ĊĠĠĠĠĠĠĠ Ġ"$ first , Ġ$ second , Ġ$ third , Ġ$ four th " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Nested ĊĠ Ġinner Ġclass ĠAny NumberOf Properties Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` tuple Ġ 7 `() Ġ{ ĊĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠ Ġval Ġtuple 7 Builder Ġ= ĠAll . of ( Tuple 7 :: class ) ĊĠĠĠĠĠĠĠ Ġ. property (" first ", Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ. property (" second ", Ġ 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ. property (" third ", Ġ 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġ. property (" four th ", Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġ. property (" f ifth ", Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġ. property (" six th ", Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġ. property (" se vent h ", Ġ 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 ) ĊĊĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠ Ġval Ġtuple 7 s Ġ= Ġtuple 7 Builder . generate () ĊĊĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠ ĠAppro vals . verify All ( tuple 7 s . to Typed Array ()) Ġ{ Ġ( first , Ġsecond , Ġthird , Ġfourth , Ġf ifth , Ġsix th , Ġse vent h ) Ġ-> ĊĠĠĠĠĠĠĠ Ġ"$ first -$ second -$ third -$ four th -$ f ifth -$ six th -$ se vent h " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` one Ġparameter `() Ġ{ ĊĠĠĠ Ġ// Ġgiven Ġ& Ġwhen ĊĠĠĠ Ġval Ġa ges Ġ= ĠAll . of (:: Age ) ĊĠĠĠĠĠ Ġ. last ( listOf ( 1 , Ġ 2 , Ġ 3 )) ĊĊĠĠĠ Ġ// Ġthen ĊĠĠĠ ĠassertThat ( ages ) ĊĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠ ĠAge ( 1 ), ĊĠĠĠĠĠĠĠ ĠAge ( 2 ), ĊĠĠĠĠĠĠĠ ĠAge ( 3 ), ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ. in Order () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` two Ġparameters `() Ġ{ ĊĠĠĠ Ġ// Ġgive Ġ& Ġwhen ĊĠĠĠ Ġval Ġpair Creator Ġ= Ġ{ Ġa : ĠInt , Ġb : ĠChar Ġ-> Ġa Ġto Ġb Ġ} ĊĠĠĠ Ġval Ġpairs Ġ= ĠAll . of ( pair Creator ) ĊĠĠĠĠĠ Ġ. first ( listOf ( 1 , Ġ 2 )) ĊĠĠĠĠĠ Ġ. last ( listOf (' a ', Ġ' b ')) ĊĊĠĠĠ Ġ// Ġthen ĊĠĠĠ ĠassertThat ( pairs ) ĊĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠĠ 1 Ġto Ġ' a ', ĊĠĠĠĠĠĠĠĠ 1 Ġto Ġ' b ', ĊĠĠĠĠĠĠĠĠ 2 Ġto Ġ' a ', ĊĠĠĠĠĠĠĠĠ 2 Ġto Ġ' b ', ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ. in Order () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` three Ġparameters `() Ġ{ ĊĠĠĠ Ġ// Ġgiven Ġ& Ġwhen ĊĠĠĠ Ġval Ġtriple Creator Ġ= Ġ{ Ġa : ĠInt , Ġb : ĠChar , Ġc : ĠDouble Ġ-> ĠTrip le ( a , Ġb , Ġc ) Ġ} ĊĠĠĠ Ġval Ġtrip les Ġ= ĠAll . of ( triple Creator ) ĊĠĠĠĠĠ Ġ. first ( listOf ( 1 )) ĊĠĠĠĠĠ Ġ. second ( listOf (' a ', Ġ' b ')) ĊĠĠĠĠĠ Ġ. last ( listOf ( 1 . 0 , Ġ 2 . 0 )) ĊĊĠĠĠ Ġ// Ġthen ĊĠĠĠ ĠassertThat ( triples ) ĊĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠ ĠTrip le ( 1 , Ġ' a ', Ġ 1 . 0 ), ĊĠĠĠĠĠĠĠ ĠTrip le ( 1 , Ġ' a ', Ġ 2 . 0 ), ĊĠĠĠĠĠĠĠ ĠTrip le ( 1 , Ġ' b ', Ġ 1 . 0 ), ĊĠĠĠĠĠĠĠ ĠTrip le ( 1 , Ġ' b ', Ġ 2 . 0 ), ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ. in Order () ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` four Ġparameters `() Ġ{ ĊĠĠĠ Ġ// Ġgiven Ġ& Ġwhen ĊĠĠĠ Ġval Ġtuple 4 Creator Ġ= Ġ{ Ġa : ĠInt , Ġb : ĠInt , Ġc : ĠInt , Ġd : ĠChar Ġ-> ĠTuple 4 ( a , Ġb , Ġc , Ġd ) Ġ} ĊĠĠĠ ĠAll . of ( tuple 4 Creator ) ĊĠĠĠĠĠ Ġ. first ( listOf ( 1 )) ĊĠĠĠĠĠ Ġ. second ( listOf ( 2 )) ĊĠĠĠĠĠ Ġ. third ( listOf ( 3 )) ĊĠĠĠĠĠ Ġ. last ( listOf (' a ', Ġ' b ', Ġ' c ', Ġ' d ')) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` five Ġparameters `() Ġ{ ĊĠĠĠ Ġ// Ġgiven Ġ& Ġwhen ĊĠĠĠ Ġval Ġtuple 5 Creator Ġ= Ġ{ Ġa : ĠInt , Ġb : ĠInt , Ġc : ĠInt , Ġd : ĠInt , Ġe : ĠChar Ġ-> ĊĠĠĠĠĠ ĠTuple 5 ( a , Ġb , Ġc , Ġd , Ġe ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġtuple 5 s Ġ= ĠAll . of ( tuple 5 Creator ) ĊĠĠĠĠĠ Ġ. first ( listOf ( 1 )) ĊĠĠĠĠĠ Ġ. second ( listOf ( 2 )) ĊĠĠĠĠĠ Ġ. third ( listOf ( 3 )) ĊĠĠĠĠĠ Ġ. four th ( listOf ( 4 )) ĊĠĠĠĠĠ Ġ. last ( listOf (' a ', Ġ' b ', Ġ' c ', Ġ' d ', Ġ' e ')) ĊĊĠĠĠ Ġ// Ġthen ĊĠĠĠ ĠassertThat ( tuple 5 s ) ĊĠĠĠĠĠ Ġ. contains Exactly ( ĊĠĠĠĠĠĠĠ ĠTuple 5 ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ' a '), ĊĠĠĠĠĠĠĠ ĠTuple 5 ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ' b '), ĊĠĠĠĠĠĠĠ ĠTuple 5 ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ' c '), ĊĠĠĠĠĠĠĠ ĠTuple 5 ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ' d '), ĊĠĠĠĠĠĠĠ ĠTuple 5 ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ' e '), ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ. in Order () ĊĠ Ġ} Ċ } Ċ