package Ġch 1 0 Ċ Ċ import Ġorg . junit . Test Ċ Ċ /* ĠĊ Ġ* ĠCreated Ġwith Ġpass ion Ġand Ġlove Ċ Ġ* ĠĠĠ Ġfor Ġproject ĠFunctional Kotlin Ċ Ġ* ĠĠĠĠĠĠĠ Ġby ĠJ atz uk Ġon Ġ 0 8 . 0 7 . 2 0 1 9 Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ____ _* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*_ ***** _* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* _( O ) _( O )_ * Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ** ____ V ____ ** Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ** ________ _** Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ** ________ _** Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ________ _* Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*** ___ *** Ċ Ġ*/ Ċ Ċ class ĠMon ads Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmon ad Example () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ). flatMap Ġ{ ĠlistOf ( it Ġ* Ġ 2 , Ġit Ġ+ Ġ 3 ) Ġ}. join ToString () ĊĠĠĠĠĠĠĠ Ġprintln ( result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġflat Map Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( calculate Discount ( Option . Some ( 8 0 . 0 ))) ĊĠĠĠĠĠĠĠ Ġprintln ( calculate Discount ( Option . Some ( 3 0 . 0 ))) ĊĠĠĠĠĠĠĠ Ġprintln ( calculate Discount ( Option . None )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġnested Flat Map Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmaybe Five Ġ= ĠOption . Some ( 5 ) ĊĠĠĠĠĠĠĠ Ġval Ġmaybe Two Ġ= ĠOption . Some ( 2 ) ĊĠĠĠĠĠĠĠ Ġprintln ( maybe Five . map M Ġ{ Ġf Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaybe Two . map M Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption . Some ( f Ġ+ Ġt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcomposition Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnumbers Ġ= ĠlistOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġfunctions Ġ= ĠlistOf <( Int ) Ġ-> ĠInt >({ Ġit Ġ* Ġ 2 Ġ}, Ġ{ Ġit Ġ+ Ġ 3 Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġnumbers . flatMap Ġ{ Ġfunctions . map Ġ{ Ġf Ġ-> Ġf ( it ) Ġ} Ġ}. join ToString () ĊĠĠĠĠĠĠĠ Ġprintln ( result ) ĊĠĠĠ Ġ} Ċ } Ċ