package Ġcom . so y wiz . k lock Ċ Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠDateTime Range Test Ġ{ ĊĠĠĠ Ġval Ġformat Ġ= ĠISO 8 6 0 1 . DATETIME _ COMPLETE ĊĠĠĠ Ġfun ĠString . date () Ġ= Ġformat . parse Utc ( this ) ĊĠĠĠ Ġfun Ġrange ( from : ĠInt , Ġto : ĠInt ) Ġ= Ġ( DateTime . EPOCH Ġ+ Ġfrom . milliseconds ) Ġuntil Ġ( DateTime . EPOCH Ġ+ Ġto . milliseconds ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrange 1 Ġ= Ġ" 2 0 1 9 - 0 9 - 1 7 T 1 3 : 5 3 : 3 1 ". date () Ġuntil Ġ" 2 0 1 9 - 1 0 - 1 7 T 0 7 : 0 0 : 0 0 ". date () ĊĠĠĠĠĠĠĠ Ġval Ġrange 2 Ġ= Ġ" 2 0 1 9 - 0 9 - 1 7 T 1 4 : 5 3 : 3 1 ". date () Ġuntil Ġ" 2 0 1 9 - 1 0 - 1 7 T 0 8 : 0 0 : 0 0 ". date () ĊĠĠĠĠĠĠĠ Ġval Ġrange 3 Ġ= Ġ" 2 0 1 9 - 1 0 - 1 9 T 0 0 : 0 0 : 0 0 ". date () Ġuntil Ġ" 2 0 1 9 - 1 0 - 2 0 T 0 0 : 0 0 : 0 0 ". date () ĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 0 1 9 - 0 9 - 1 7 T 1 4 : 5 3 : 3 1 .. 2 0 1 9 - 1 0 - 1 7 T 0 7 : 0 0 : 0 0 ", Ġrange 1 . intersection With ( range 2 )?. toString ( format )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġrange 1 . intersection With ( range 3 )?. toString ( format )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest 2 () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals (" [] ", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range ( 0 , Ġ 1 0 0 )))) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 5 0 .. 1 0 0 ]", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range (- 5 0 , Ġ 5 0 )))) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 0 .. 1 0 0 ]", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range (- 5 0 , Ġ- 1 0 )))) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 0 .. 1 0 0 ]", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range (- 5 0 , Ġ 0 )))) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 0 .. 2 0 , Ġ 7 0 .. 1 0 0 ]", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range ( 2 0 , Ġ 7 0 )))) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 0 .. 5 0 ]", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range ( 5 0 , Ġ 1 0 0 )))) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 0 .. 5 0 ]", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range ( 5 0 , Ġ 1 2 0 )))) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 0 .. 1 0 0 ]", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range ( 1 0 0 , Ġ 1 2 0 )))) ĊĠĠĠĠĠĠĠ ĠassertEquals ("[ 0 .. 1 0 0 ]", ĠDateTime Range Set . toString Long s ( range ( 0 , Ġ 1 0 0 ). without ( range ( 1 2 0 , Ġ 2 0 0 )))) ĊĠĠĠ Ġ} ĊĊ ĉ @ Test Ċ ĉ fun Ġtest Contains Range () Ġ{ Ċĉ ĉ assertEquals ( true , Ġrange ( 0 , Ġ 1 0 0 ) Ġin Ġrange ( 0 , Ġ 1 0 0 )) Ċĉ ĉ assertEquals ( true , Ġrange ( 2 0 , Ġ 8 0 ) Ġin Ġrange ( 0 , Ġ 1 0 0 )) Ċĉ ĉ assertEquals ( true , Ġrange ( 8 0 , Ġ 1 0 0 ) Ġin Ġrange ( 0 , Ġ 1 0 0 )) ĊĊĉ ĉ assertEquals ( false , Ġrange (- 5 0 , Ġ- 2 0 ) Ġin Ġrange ( 0 , Ġ 1 0 0 )) Ċĉ ĉ assertEquals ( false , Ġrange (- 1 0 , Ġ 1 1 0 ) Ġin Ġrange ( 0 , Ġ 1 0 0 )) Ċĉ ĉ assertEquals ( false , Ġrange ( 8 0 , Ġ 1 0 1 ) Ġin Ġrange ( 0 , Ġ 1 0 0 )) Ċĉ ĉ assertEquals ( false , Ġrange (- 5 0 , Ġ 0 ) Ġin Ġrange ( 0 , Ġ 1 0 0 )) Ċ ĉ } ĊĊ ĉ @ Test Ċ ĉ fun Ġtest Test () Ġ{ Ċĉ ĉ val Ġrange Ġ= ĠDateTime Range ( Date ( 2 0 1 9 , ĠMonth . September , Ġ 1 8 ), ĠTime ( 8 ), ĠTime ( 1 3 )) Ċĉ ĉ assertEquals (" 2 0 1 9 - 0 9 - 1 8 T 0 8 : 0 0 : 0 0 .. 2 0 1 9 - 0 9 - 1 8 T 1 3 : 0 0 : 0 0 ", Ġrange . toString ( ISO 8 6 0 1 . DATETIME _ COMPLETE . extended )) Ċ ĉ } ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Optional Patterns () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠPattern DateFormat (" YYYY [- MM [- dd ]] "). with Optional () ĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 0 1 9 - 0 1 - 0 1 ", Ġformat . parse (" 2 0 1 9 "). toString ( format )) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 0 1 9 - 0 9 - 0 1 ", Ġformat . parse (" 2 0 1 9 - 0 9 "). toString ( format )) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 0 1 9 - 0 9 - 0 3 ", Ġformat . parse (" 2 0 1 9 - 0 9 - 0 3 "). toString ( format )) ĊĠĠĠ Ġ} Ċ } Ċ