/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 , ĠCh is wick ĠForest Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . pi j . z work out . work out . feature Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġcom . pi j . z work out . uc .* Ċ import Ġcom . pi j . z work out . work out .* Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . hamcrest . Matchers . contains Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* Ċ Ġ* ĠCreated Ġon Ġ 3 1 / 0 3 / 2 0 1 8 . Ċ Ġ* Ċ Ġ* Ġ@ author ĠP ier re jean Ċ Ġ*/ Ċ class ĠInsert Eff ort Feature Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsut : ĠInsert Eff ort Feature ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconverter Mock : Ġ( Model Eff ort ) Ġ-> ĠE ff ort ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġeffort : ĠModel Eff ort ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconverted : ĠE ff ort ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġeffort Ġ= ĠModel St eady State ( 1 2 0 , Ġ" Z 1 ", Ġnull , Ġ 9 0 ) ĊĠĠĠĠĠĠĠ Ġconverted Ġ= ĠSte ady State ( 1 , ĠRelative Power ( 1 f ), Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġconverter Mock Ġ= Ġmock () ĊĠĠĠĠĠĠĠ Ġsut Ġ= ĠInsert Eff ort Feature ( converter Mock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Adds Ġa ĠSte ady Ġstate Ġto Ġan Ġempty Ġlist Ġof Ġefforts `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠState () ĊĠĠĠĠĠĠĠ Ġwhenever ( converter Mock . invoke ( eff ort )). thenReturn ( converted ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġsut . process ( Pair ( eff ort , ĠInsert Eff ort Feature . END _ OF _ LIST )). reduce ( current ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertThat ( next . work out . eff ort s , Ġcontains < Eff ort >( converted )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` App ends Ġa ĠSte ady Ġstate Ġto Ġa Ġnon - empty Ġlist Ġof Ġefforts `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠState ( work out Ġ= ĠWork out ( eff ort s Ġ= ĠlistOf < Eff ort >( St eady State ( 1 2 0 , ĠRelative Power ( 0 . 1 f ))))) ĊĠĠĠĠĠĠĠ Ġwhenever ( converter Mock . invoke ( eff ort )). thenReturn ( converted ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġsut . process ( Pair ( eff ort , ĠInsert Eff ort Feature . END _ OF _ LIST )). reduce ( current ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertThat ( next . work out . eff ort s , Ġcontains < Eff ort >( St eady State ( 1 2 0 , ĠRelative Power ( 0 . 1 f )), Ġconverted )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Inser ts Ġa ĠSte ady Ġstate Ġin Ġa Ġnon - empty Ġlist Ġof Ġefforts `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠState ( work out Ġ= ĠWork out ( eff ort s Ġ= ĠlistOf < Eff ort >( St eady State ( 1 2 0 , ĠRelative Power ( 0 . 1 f ))))) ĊĠĠĠĠĠĠĠ Ġwhenever ( converter Mock . invoke ( eff ort )). thenReturn ( converted ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġsut . process ( Pair ( eff ort , Ġ 0 )). reduce ( current ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertThat ( next . work out . eff ort s , Ġcontains < Eff ort >( converted , ĠSte ady State ( 1 2 0 , ĠRelative Power ( 0 . 1 f )))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Adds Ġa ĠR amp Ġto Ġan Ġempty Ġlist Ġof Ġefforts `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġeffort Ġ= ĠModel R amp ( 1 2 0 , ĠModel Range d Power ( Model Power Range . Z 1 ), ĠModel Range d Power ( Model Power Range . Z 2 ), Ġ 9 0 , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠState () ĊĠĠĠĠĠĠĠ Ġval Ġconverted Ġ= ĠR amp ( 1 , ĠRelative Power ( 1 f ), ĠRelative Power ( 2 f ), Ġ 5 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġwhenever ( converter Mock . invoke ( eff ort )). thenReturn ( converted ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġsut . process ( Pair ( eff ort , ĠInsert Eff ort Feature . END _ OF _ LIST )). reduce ( current ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ ĠassertThat ( next . work out . eff ort s , Ġcontains < Eff ort >( converted )) ĊĠĠĠ Ġ} Ċ Ċ } Ċ