package Ġcom . lun iv ore . mont ec ar l uni . engine Ċ Ċ import Ġcom . lun iv ore . mont ec ar l uni . model . Cycle Time Ċ import Ġcom . lun iv ore . mont ec ar l uni . model . Record Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Test Ċ import Ġjava . time . Duration Ċ import Ġjava . time . LocalDateTime Ċ Ċ class ĠCycle Times Calculator Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġprovide Ġa Ġlist Ġof Ġthe Ġg aps Ġbetween Ġwork Ġitems `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven Ġa Ġlist Ġof Ġrecords ĊĠĠĠĠĠĠĠ Ġval Ġdates Ġ= ĠlistOf ( LocalDateTime . of ( 2 0 1 7 , Ġ 1 , Ġ 2 , Ġ 1 2 , Ġ 0 , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . of ( 2 0 1 7 , Ġ 1 , Ġ 3 , Ġ 1 6 , Ġ 0 , Ġ 0 ), Ġ// Ġthis Ġone Ġis Ġout Ġof Ġorder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . of ( 2 0 1 7 , Ġ 1 , Ġ 3 , Ġ 1 4 , Ġ 0 , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . of ( 2 0 1 7 , Ġ 1 , Ġ 7 , Ġ 1 6 , Ġ 0 , Ġ 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġrecords Ġ= Ġdates ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠRecord ( it , Ġnull ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġwe Ġask Ġfor Ġthe Ġcycle Ġtimes Ġfrom Ġthe Ġrecords ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠCycle Times Calculator (). calculate Cycle Times ( records ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen Ġit Ġshould Ġgive Ġus Ġback Ġa Ġlist Ġof Ġthe Ġg aps ĊĠĠĠĠĠĠĠ Ġval Ġexpected Result Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCycle Time ("", Ġdates [ 0 ], Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCycle Time ("", Ġdates [ 2 ], ĠDuration . of Hours ( 2 6 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCycle Time ("", Ġdates [ 1 ], ĠDuration . of Hours ( 2 )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCycle Time ("", Ġdates [ 3 ], ĠDuration . of Hours ( 9 6 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Result , Ġresult ) ĊĠĠĠ Ġ} Ċ } Ċ