package Ġai . bl ind spot . k tool z . extensions Ċ Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . Instant Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . Zone Id Ċ import Ġjava . util . Date Ċ import Ġkotlin . streams . toList Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠDate Extensions Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet DateRange To () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġto T ight Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays T ight Ġ= ĠlistOf ( LocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( days T ight , Ġfrom . getDate Range To ( to T ight )) ĊĊĠĠĠĠĠĠĠ Ġval Ġto L oose Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays L oose Ġ= ĠlistOf ( LocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ), ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 1 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( days L oose , Ġfrom . getDate Range To ( to L oose )) ĊĊĠĠĠĠĠĠĠ Ġval Ġto In fe asible Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays In fe asible Ġ= ĠlistOf < LocalDate >() ĊĠĠĠĠĠĠĠ ĠassertEquals ( days In fe asible , Ġfrom . getDate Range To ( to In fe asible )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet DateRange To AsStream () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġto T ight Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays T ight Ġ= ĠlistOf ( LocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( days T ight , Ġfrom . getDate Range To AsStream ( to T ight ). toList ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġto L oose Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays L oose Ġ= ĠlistOf ( LocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ), ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 1 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( days L oose , Ġfrom . getDate Range To AsStream ( to L oose ). toList ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġto In fe asible Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays In fe asible Ġ= ĠlistOf < LocalDate >() ĊĠĠĠĠĠĠĠ ĠassertEquals ( days In fe asible , Ġfrom . getDate Range To AsStream ( to In fe asible ). toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet In verted DateRange To AsStream () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġto T ight Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays T ight Ġ= ĠlistOf ( LocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( days T ight , Ġfrom . getIn verted DateRange To AsStream ( to T ight ). toList ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġto L oose Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays L oose Ġ= ĠlistOf ( LocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ), ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 9 )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( days L oose , Ġfrom . getIn verted DateRange To AsStream ( to L oose ). toList ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġto In fe asible Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġdays In fe asible Ġ= ĠlistOf < LocalDate >() ĊĠĠĠĠĠĠĠ ĠassertEquals ( days In fe asible , Ġfrom . getIn verted DateRange To AsStream ( to In fe asible ). toList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Days In Interval () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġto T ight Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġfrom . get Days In Interval ( to T ight )) ĊĊĠĠĠĠĠĠĠ Ġval Ġto L oose Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġfrom . get Days In Interval ( to L oose )) ĊĊĠĠĠĠĠĠĠ Ġval Ġto In fe asible Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException > Ġ{ Ġfrom . get Days In Interval ( to In fe asible ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Day Difference () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġto T ight Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġfrom . get Day Difference ( to T ight )) ĊĊĠĠĠĠĠĠĠ Ġval Ġto L oose Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 1 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġfrom . get Day Difference ( to L oose )) ĊĊĠĠĠĠĠĠĠ Ġval Ġto Negative Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 8 , Ġ 9 ) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 1 , Ġfrom . get Day Difference ( to Negative )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Week OfYear () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs unday Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 1 , Ġ 7 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġs unday . get Week OfYear ()) ĊĠĠĠĠĠĠĠ Ġval Ġmon day Ġ= ĠLocalDate . of ( 2 0 1 8 , Ġ 1 , Ġ 8 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġmon day . get Week OfYear ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Set Week OfYear Monday () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġyear Ġ= ĠLocalDate . of Year Day ( 2 0 2 2 , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġweek 0 Date Ġ= ĠLocalDate . of ( 2 0 2 1 , Ġ 1 2 , Ġ 2 7 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( week 0 Date , Ġyear . set Week OfYear Monday ( 0 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġweek 1 Date Ġ= ĠLocalDate . of ( 2 0 2 2 , Ġ 1 , Ġ 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( week 1 Date , Ġyear . set Week OfYear Monday ( 1 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġweek 2 Date Ġ= ĠLocalDate . of ( 2 0 2 2 , Ġ 1 , Ġ 1 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( week 2 Date , Ġyear . set Week OfYear Monday ( 2 )) ĊĊĊĠĠĠĠĠĠĠ Ġval Ġweek 5 2 Date Ġ= ĠLocalDate . of ( 2 0 2 2 , Ġ 1 2 , Ġ 2 6 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( week 5 2 Date , Ġyear . set Week OfYear Monday ( 5 2 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġweek 5 3 Date Ġ= ĠLocalDate . of ( 2 0 2 3 , Ġ 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( week 5 3 Date , Ġyear . set Week OfYear Monday ( 5 3 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġfrom ĠDate Ġto ĠLocalDate `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinstant Ġ= ĠInstant . of Epoch Milli ( 1 _ 0 0 0 _ 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate . from ( instant ) ĊĠĠĠĠĠĠĠ Ġval Ġzone Ġ= ĠZone Id . system Default () ĊĠĠĠĠĠĠĠ Ġ// ĠUse Ġcurrent Ġsystem Ġtime Ġzone ĊĠĠĠĠĠĠĠ Ġval Ġexpected LocalDate Ġ= ĠLocalDate . from ( instant . at Zone ( zone )) ĊĊĠĠĠĠĠĠĠ Ġval Ġactual LocalDate Ġ= Ġdate . to LocalDate ( zone ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected LocalDate , Ġactual LocalDate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġfrom ĠDate Ġto ĠLocalDate Ġin ĠUTC `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinstant Ġ= ĠInstant . of Epoch Milli ( 1 _ 0 0 0 _ 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate . from ( instant ) ĊĠĠĠĠĠĠĠ Ġval Ġzone Ġ= ĠZone Id . of (" UTC ") ĊĠĠĠĠĠĠĠ Ġ// ĠUse Ġcurrent Ġsystem Ġtime Ġzone ĊĠĠĠĠĠĠĠ Ġval Ġexpected LocalDate Ġ= ĠLocalDate . from ( instant . at Zone ( zone )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( expected LocalDate , Ġdate . to Utc LocalDate ()) ĊĠĠĠ Ġ} Ċ Ċ } Ċ