package Ġcom . example . demo Ċ Ċ import Ġcom . example . demo . test utils . junit 5 . dynamic Test Ċ import Ġorg . am sh ove . k lu ent . should Equal Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Dynamic Test Ċ import Ġorg . junit . jupiter . api . Test Factory Ċ import Ġorg . junit . platform . runner . JUnit Platform Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ RunWith ( JUnit Platform :: class ) Ċ class ĠDynamic Calculator Test Ġ{ ĊĊĠĠĠ Ġ@ Test Factory Ġ@ DisplayName (" suite : Ġcalculator . sum ") ĊĠĠĠ Ġfun Ġsum Tests (): List < Dynamic Test > Ġ= Ġcreate Sum Tests () ĊĊĠĠĠ Ġ@ Test Factory Ġ@ DisplayName (" suite : Ġcalculator . subtract ") ĊĠĠĠ Ġfun Ġsubtract Tests (): ĠList < Dynamic Test > Ġ= Ġcreate Subtract Tests () ĊĊĠĠĠ Ġprivate Ġval Ġcalculator Ġ= ĠSimple Calculator () ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Sum Tests (): ĠList < Dynamic Test > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Name : Ġ( TestCase ) Ġ-> ĠString Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Ġcalculator . sum (${ it . a }, ${ it . a }) Ġshould Ġbe Ġ${ it . expected Result }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtest : Ġ( TestCase )-> Unit Ġ= Ġ{ Ġsum Test ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestCase ( test Name Ġ= Ġtest Name , Ġa Ġ= Ġ 1 , Ġb Ġ= Ġ 1 , Ġexpected Result Ġ= Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestCase ( test Name Ġ= Ġtest Name , Ġa Ġ= Ġ 5 , Ġb Ġ= Ġ 6 , Ġexpected Result Ġ= Ġ 1 1 ) ĊĠĠĠĠĠĠĠ Ġ). map Ġ{ ĠtestCase -> ĠtestCase . to Dynamic Test ( test ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Subtract Tests (): ĠList < Dynamic Test > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Name : Ġ( TestCase ) Ġ-> ĠString Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test Ġcalculator . subtract (${ it . a }, ${ it . a }) Ġshould Ġbe Ġ${ it . expected Result }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtest : Ġ( TestCase )-> Unit Ġ= Ġ{ Ġsubtract Test ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestCase ( test Name Ġ= Ġtest Name , Ġa Ġ= Ġ 1 0 , Ġb Ġ= Ġ 1 , Ġexpected Result Ġ= Ġ 9 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTestCase ( test Name Ġ= Ġtest Name , Ġa Ġ= Ġ 5 , Ġb Ġ= Ġ 3 , Ġexpected Result Ġ= Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ). map Ġ{ ĠtestCase -> ĠtestCase . to Dynamic Test ( test ) Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġsum Test ( testCase : ĠTestCase ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcalculator . sum ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtestCase . a , ĠtestCase . b ĊĠĠĠĠĠĠĠ Ġ) Ġshould Equal ĠtestCase . expected Result ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsubtract Test ( testCase : ĠTestCase ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcalculator . subtract ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtestCase . a , ĠtestCase . b ĊĠĠĠĠĠĠĠ Ġ) Ġshould Equal ĠtestCase . expected Result ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ Ċ internal Ġdata Ġclass ĠTestCase ( ĊĠĠĠ Ġval Ġa : ĠInt , ĊĠĠĠ Ġval Ġb : ĠInt , ĊĠĠĠ Ġval Ġexpected Result : ĠInt , ĊĠĠĠ Ġval Ġtest Name : Ġ( TestCase ) Ġ-> ĠString Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġto Dynamic Test ( block :( TestCase )-> Unit ): Dynamic Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtest Name Ġ= Ġtest Name ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġtest : ()-> Unit Ġ= Ġ{ Ġblock ( this ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdynamic Test ( test Name , Ġtest ) ĊĠĠĠ Ġ} Ċ }