package Ġnet . ig or bre jc . time slack Ċ Ċ import Ġcom . google . common . collect . ImmutableList Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assert Throws Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . lang . IllegalArgumentException Ċ Ċ class Ġ` Activities Ġlog ` Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` requires Ġat Ġleast Ġone Ġtime Ġpoint `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows ( IllegalArgumentException :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActiv ities Log ( 1 0 , Ġempty List ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` cannot Ġspecify Ġmore Ġtime Ġpoints Ġthan Ġthere Ġare Ġactivities Ġ( plus Ġ 1 )` () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows ( IllegalArgumentException :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActiv ities Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableList . of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSlack er Time . of ( 1 0 , Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSlack er Time . of ( 1 0 , Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSlack er Time . of ( 1 0 , Ġ 2 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSlack er Time . of ( 1 0 , Ġ 2 0 ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` returns Ġthe Ġflow Ġstart Ġtime Ġas Ġthe Ġactivity Ġstart Ġtime Ġif Ġfirst Ġactivity `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflow StartTime Ġ= ĠSlack er Time . of ( 1 0 , Ġ 4 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġlog Ġ= ĠActiv ities Log ( 1 0 , ĠImmutableList . of ( flow StartTime )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( flow StartTime , Ġlog . current Activity StartTime ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` returns Ġthe Ġrecorded Ġactivity Ġstart Ġtime Ġif Ġnot Ġthe Ġfirst Ġactivity `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġflow StartTime Ġ= ĠSlack er Time . of ( 1 0 , Ġ 4 4 ) ĊĠĠĠĠĠĠĠ Ġval Ġactivity StartTime Ġ= Ġflow StartTime . add ( Sl acker Duration ( 1 5 )) ĊĠĠĠĠĠĠĠ Ġval Ġlog Ġ= ĠActiv ities Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableList . of ( flow StartTime , Ġactivity StartTime )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( activity StartTime , Ġlog . current Activity StartTime ()) ĊĠĠĠ Ġ} Ċ }