package Ġio . github . deb op . ah oc or as ick . interval Ċ Ċ import Ġmu . K Logging Ċ import Ġorg . am sh ove . k lu ent . shouldBe EqualTo Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ /** Ċ Ġ* ĠInterval Comparator Test Ċ Ġ* Ġ@ author Ġdeb op Ġ( Sun gh you k ĠB ae ) Ċ Ġ*/ Ċ class ĠInterval able Comparator Test Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject : ĠK Logging () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Comparator Ġ= ĠInterval able Comparator By Size () ĊĠĠĠĠĠĠĠ Ġval Ġsize Reverse Comparator Ġ= ĠInterval able Comparator By Size Reverse () ĊĠĠĠĠĠĠĠ Ġval Ġposition Comparator Ġ= ĠInterval able Comparator By Position () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` compare Ġinterval able Ġby Ġposition `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintervals Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 4 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 1 , Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 3 , Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġintervals . sort With ( position Comparator ) ĊĊĠĠĠĠĠĠĠ Ġintervals [ 0 ] ĠshouldBe EqualTo ĠInterval ( 1 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġintervals [ 1 ] ĠshouldBe EqualTo ĠInterval ( 3 , Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġintervals [ 2 ] ĠshouldBe EqualTo ĠInterval ( 4 , Ġ 5 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` compare Ġinterval able Ġby Ġsize `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintervals Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 4 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 1 , Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 3 , Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġintervals . sort With ( size Comparator ) ĊĊĠĠĠĠĠĠĠ Ġintervals [ 0 ]. size ĠshouldBe EqualTo Ġ 2 ĊĠĠĠĠĠĠĠ Ġintervals [ 1 ]. size ĠshouldBe EqualTo Ġ 4 ĊĠĠĠĠĠĠĠ Ġintervals [ 2 ]. size ĠshouldBe EqualTo Ġ 6 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` compare Ġinterval able Ġby Ġsize Ġreverse `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintervals Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 4 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 1 , Ġ 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 3 , Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġintervals . sort With ( size Reverse Comparator ) ĊĊĠĠĠĠĠĠĠ Ġintervals [ 0 ]. size ĠshouldBe EqualTo Ġ 6 ĊĠĠĠĠĠĠĠ Ġintervals [ 1 ]. size ĠshouldBe EqualTo Ġ 4 ĊĠĠĠĠĠĠĠ Ġintervals [ 2 ]. size ĠshouldBe EqualTo Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` compare Ġinterval able Ġby Ġsize Ġreverse Ġand Ġposition `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintervals Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 4 , Ġ 7 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 2 , Ġ 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInterval ( 3 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġintervals . sort With ( size Reverse Comparator ) ĊĊĠĠĠĠĠĠĠ Ġintervals [ 0 ] ĠshouldBe EqualTo ĠInterval ( 2 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġintervals [ 1 ] ĠshouldBe EqualTo ĠInterval ( 3 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġintervals [ 2 ] ĠshouldBe EqualTo ĠInterval ( 4 , Ġ 7 ) ĊĠĠĠ Ġ} Ċ }