package Ġio . kot est . assertions . arrow Ċ Ċ import Ġarrow . core . Non Empty List Ċ import Ġio . kot est . assertions . arrow . nel . for Any Ċ import Ġio . kot est . assertions . arrow . nel . for Exactly Ċ import Ġio . kot est . assertions . arrow . nel . for None Ċ import Ġio . kot est . assertions . arrow . nel . for One Ċ import Ġio . kot est . assertions . arrow . nel . for Some Ċ import Ġio . kot est . assertions . throw ables . should Throw Ċ import Ġio . kot est . core . spec . style . Word Spec Ċ import Ġio . kot est . matchers . comp ar ables . be GreaterThan Ċ import Ġio . kot est . matchers . comp ar ables . be LessThan Ċ import Ġio . kot est . matchers . should Ċ import Ġio . kot est . matchers . shouldBe Ċ Ċ class ĠIn spect ors Test Ġ: ĠWord Spec () Ġ{ ĊĊĠĠ Ġprivate Ġval Ġnel Ġ= ĠNon Empty List ( 1 , ĠlistOf ( 2 , Ġ 3 , Ġ 4 , Ġ 5 )) ĊĊĠĠ Ġinit Ġ{ ĊĊĠĠĠĠĠ Ġ" for None " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" pass Ġif Ġno Ġelements Ġpass Ġfn Ġtest Ġfor Ġa Ġlist " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for None Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġone Ġelements Ġpasses Ġfn Ġtest " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġt Ġ= Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for None Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt . message ĠshouldBe Ġ""" 1 Ġelements Ġpassed Ġbut Ġexpected Ġ 0 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ 4 Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ 1 Ġ=> Ġexpected :< 4 > Ġbut Ġwas :< 1 > Ċ 2 Ġ=> Ġexpected :< 4 > Ġbut Ġwas :< 2 > Ċ 3 Ġ=> Ġexpected :< 4 > Ġbut Ġwas :< 3 > Ċ 5 Ġ=> Ġexpected :< 4 > Ġbut Ġwas :< 5 > """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġall Ġelements Ġpass Ġfn Ġtest " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for None Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe GreaterThan ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" 5 Ġelements Ġpassed Ġbut Ġexpected Ġ 0 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ 1 Ċ 2 Ċ 3 Ċ 4 Ċ 5 Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ -- none -- """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ" for Some " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" pass Ġif Ġone Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Some Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" pass Ġif Ġsize - 1 Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Some Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe GreaterThan ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġno Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Some Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe LessThan ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" No Ġelements Ġpassed Ġbut Ġexpected Ġat Ġleast Ġone Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ -- none -- Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ 1 Ġ=> Ġ 1 Ġshould Ġbe Ġ< Ġ 0 Ċ 2 Ġ=> Ġ 2 Ġshould Ġbe Ġ< Ġ 0 Ċ 3 Ġ=> Ġ 3 Ġshould Ġbe Ġ< Ġ 0 Ċ 4 Ġ=> Ġ 4 Ġshould Ġbe Ġ< Ġ 0 Ċ 5 Ġ=> Ġ 5 Ġshould Ġbe Ġ< Ġ 0 """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġall Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Some Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe GreaterThan ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" All Ġelements Ġpassed Ġbut Ġexpected Ġ< Ġ 5 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ 1 Ċ 2 Ċ 3 Ċ 4 Ċ 5 Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ -- none -- """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ" for One " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" pass Ġif Ġone Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for One Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġ> Ġ 1 Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for One Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe GreaterThan ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" 3 Ġelements Ġpassed Ġbut Ġexpected Ġ 1 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ 3 Ċ 4 Ċ 5 Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ 1 Ġ=> Ġ 1 Ġshould Ġbe Ġ> Ġ 2 Ċ 2 Ġ=> Ġ 2 Ġshould Ġbe Ġ> Ġ 2 """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġno Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for One Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe Ġ 2 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" 0 Ġelements Ġpassed Ġbut Ġexpected Ġ 1 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ -- none -- Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ 1 Ġ=> Ġexpected :< 2 2 > Ġbut Ġwas :< 1 > Ċ 2 Ġ=> Ġexpected :< 2 2 > Ġbut Ġwas :< 2 > Ċ 3 Ġ=> Ġexpected :< 2 2 > Ġbut Ġwas :< 3 > Ċ 4 Ġ=> Ġexpected :< 2 2 > Ġbut Ġwas :< 4 > Ċ 5 Ġ=> Ġexpected :< 2 2 > Ġbut Ġwas :< 5 > """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ" for Any " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" pass Ġif Ġone Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" pass Ġif Ġat Ġleast Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe GreaterThan ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġno Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" 0 Ġelements Ġpassed Ġbut Ġexpected Ġat Ġleast Ġ 1 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ -- none -- Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ 1 Ġ=> Ġexpected :< 6 > Ġbut Ġwas :< 1 > Ċ 2 Ġ=> Ġexpected :< 6 > Ġbut Ġwas :< 2 > Ċ 3 Ġ=> Ġexpected :< 6 > Ġbut Ġwas :< 3 > Ċ 4 Ġ=> Ġexpected :< 6 > Ġbut Ġwas :< 4 > Ċ 5 Ġ=> Ġexpected :< 6 > Ġbut Ġwas :< 5 > """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġ" for Exactly " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠ Ġ" pass Ġif Ġexactly Ġk Ġelements Ġpass " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Exactly ( 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe LessThan ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġmore Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Exactly ( 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe GreaterThan ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" 3 Ġelements Ġpassed Ġbut Ġexpected Ġ 2 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ 3 Ċ 4 Ċ 5 Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ 1 Ġ=> Ġ 1 Ġshould Ġbe Ġ> Ġ 2 Ċ 2 Ġ=> Ġ 2 Ġshould Ġbe Ġ> Ġ 2 """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġless Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Exactly ( 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġshould Ġbe LessThan ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" 1 Ġelements Ġpassed Ġbut Ġexpected Ġ 2 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ 1 Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ 2 Ġ=> Ġ 2 Ġshould Ġbe Ġ< Ġ 2 Ċ 3 Ġ=> Ġ 3 Ġshould Ġbe Ġ< Ġ 2 Ċ 4 Ġ=> Ġ 4 Ġshould Ġbe Ġ< Ġ 2 Ċ 5 Ġ=> Ġ 5 Ġshould Ġbe Ġ< Ġ 2 """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġno Ġelements Ġpass Ġtest " Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < AssertionError > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnel . for Exactly ( 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe Ġ 3 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message ĠshouldBe Ġ""" 0 Ġelements Ġpassed Ġbut Ġexpected Ġ 2 Ċ Ċ The Ġfollowing Ġelements Ġpassed : Ċ -- none -- Ċ Ċ The Ġfollowing Ġelements Ġfailed : Ċ 1 Ġ=> Ġexpected :< 3 3 > Ġbut Ġwas :< 1 > Ċ 2 Ġ=> Ġexpected :< 3 3 > Ġbut Ġwas :< 2 > Ċ 3 Ġ=> Ġexpected :< 3 3 > Ġbut Ġwas :< 3 > Ċ 4 Ġ=> Ġexpected :< 3 3 > Ġbut Ġwas :< 4 > Ċ 5 Ġ=> Ġexpected :< 3 3 > Ġbut Ġwas :< 5 > """ ĊĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠ Ġ} Ċ } Ċ