import Ġcom . fasterxml . jackson . databind . node . Int Node Ċ import Ġcom . fasterxml . jackson . databind . node . Text Node Ċ import Ġde . r ki . j fn . evaluate Diff Time Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . time . format . DateTime ParseException Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ Ċ internal Ġclass ĠDiff Time Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġtime Ġin Ġhours `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġsecond Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 2 0 : 2 9 : 0 4 . 5 1 + 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node ( second Date ), ĠText Node (" hour ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 4 , Ġevaluate Diff Time ( arguments ). intValue ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġtime Ġin Ġhours Ġvice Ġvers a `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 2 0 : 2 9 : 0 4 . 5 1 + 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġsecond Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node ( second Date ), ĠText Node (" hour ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġevaluate Diff Time ( arguments ). intValue ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġtime Ġin Ġseconds `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġsecond Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node ( second Date ), ĠText Node (" second ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 6 0 Ġ* Ġ 6 0 , Ġevaluate Diff Time ( arguments ). intValue ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġtime Ġin Ġdays `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġsecond Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 4 T 1 6 : 3 4 : 0 4 . 5 1 + 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node ( second Date ), ĠText Node (" day ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 3 , Ġevaluate Diff Time ( arguments ). intValue ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġtime Ġin Ġminutes `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġsecond Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 2 0 : 2 9 : 0 6 . 5 1 + 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node ( second Date ), ĠText Node (" minute ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 4 Ġ* Ġ 6 0 Ġ- Ġ 7 , Ġevaluate Diff Time ( arguments ). intValue ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġtime Ġin Ġmonths `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġsecond Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node ( second Date ), ĠText Node (" month ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġevaluate Diff Time ( arguments ). intValue ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` diff Ġtime Ġin Ġyears `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġsecond Date Ġ= Ġ" 2 0 1 9 - 0 8 - 1 0 T 1 6 : 2 2 : 0 4 . 5 1 + 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node ( second Date ), ĠText Node (" year ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (- 5 , Ġevaluate Diff Time ( arguments ). intValue ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` wrong Ġnumber Ġof Ġarguments Ġraises Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node (" year ")) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" wrong Ġnumber Ġof Ġarguments " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġevaluate Diff Time ( arguments ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` wrong Ġorder Ġof Ġarguments Ġraises Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node (" year "), ĠInt Node ( 4 )) ĊĠĠĠĠĠĠĠ Ġassert Fails With < IllegalArgumentException >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" wrong Ġorder Ġof Ġarguments " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġevaluate Diff Time ( arguments ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` wrong Ġtype Ġof Ġarguments Ġraises Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 2 0 1 3 - 0 8 - 1 1 T 1 7 : 2 2 : 0 4 . 5 1 + 0 1 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node (" year "), ĠText Node (" 4 ")) ĊĠĠĠĠĠĠĠ Ġassert Fails With < DateTime ParseException >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" wrong Ġtype Ġof Ġarguments " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġevaluate Diff Time ( arguments ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` wrong Ġdate Ġraises Ġexception `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Date Ġ= Ġ" 1 . 1 . 2 0 2 2 Ġ 1 6 : 3 0 : 1 5 " ĊĠĠĠĠĠĠĠ Ġval Ġsecond Date Ġ= Ġ" 2 0 1 9 - 0 8 - 1 0 T 1 6 : 2 2 : 0 4 . 5 1 + 0 0 : 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġarguments Ġ= ĠlistOf ( Text Node ( first Date ), ĠText Node ( second Date ), ĠText Node (" year ")) ĊĠĠĠĠĠĠĠ Ġassert Fails With < DateTime ParseException >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" wrong Ġtype Ġof Ġarguments " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġevaluate Diff Time ( arguments ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ