package Ġcom . github . mp e 8 5 . gr amp a . grammar Ċ Ċ import Ġcom . github . mp e 8 5 . gr amp a . legal Code Points Ċ import Ġcom . github . mp e 8 5 . gr amp a . parser . Parser Ċ import Ġcom . ibm . icu . lang . U Character . toString Ċ import Ġio . kot est . core . spec . style . String Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . kot est . property . ar bitrary . filter Not Ċ import Ġio . kot est . property . check All Ċ Ċ class ĠCr Rule Tests Ġ: ĠString Spec ({ ĊĠĠĠ Ġ" CR Ġrule Ġmatches ĠCR Ġcharacter " Ġ{ ĊĠĠĠĠĠĠĠ ĠParser ( object Ġ: ĠAbstract Grammar < Unit >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstart () Ġ= Ġcr () ĊĠĠĠĠĠĠĠ Ġ}). run ("\ r "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Ent ire Input ĠshouldBe Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Input ĠshouldBe Ġ"\ r " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest Of Input ĠshouldBe Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ" CR Ġrule Ġdoes Ġnot Ġmatch Ġnon - CR Ġcode points " Ġ{ ĊĠĠĠĠĠĠĠ ĠParser ( object Ġ: ĠAbstract Grammar < Unit >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstart () Ġ= Ġcr () ĊĠĠĠĠĠĠĠ Ġ}). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck All ( legal Code Points (). filter Not Ġ{ Ġit . value Ġ== Ġ'\ r '. code Ġ}) Ġ{ Ġcp Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun ( toString ( cp . value )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatched ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Ent ire Input ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Input ĠshouldBe Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrest Of Input ĠshouldBe ĠtoString ( cp . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ" CR Ġrule Ġdoes Ġnot Ġmatch Ġempty Ġinput " Ġ{ ĊĠĠĠĠĠĠĠ ĠParser ( object Ġ: ĠAbstract Grammar < Unit >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġstart () Ġ= Ġcr () ĊĠĠĠĠĠĠĠ Ġ}). run (" "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Ent ire Input ĠshouldBe Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatched Input ĠshouldBe Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest Of Input ĠshouldBe Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }) Ċ