/* ĊĠĠĠ ĠCop ied Ġfrom : ĊĠĠĠ Ġhttps :// github . com / e hn - dcc - development / d gc - business - rules / blob / main / cert logic / cert logic - kotlin / src / test / kotlin / eu / e hn / dcc / cert logic / internal Tests . kt ĊĊĠĠĠ ĠMod ifications ĠCopyright Ġ( c ) Ġ 2 0 2 2 ĠSAP ĠSE Ġor Ġan ĠSAP Ġaffili ate Ġcompany . Ċ */ Ċ import Ġcom . fasterxml . jackson . databind . node . BigInteger Node Ċ import Ġcom . fasterxml . jackson . databind . node . Boolean Node Ċ import Ġcom . fasterxml . jackson . databind . node . Double Node Ċ import Ġcom . fasterxml . jackson . databind . node . Int Node Ċ import Ġcom . fasterxml . jackson . databind . node . JsonNode Factory Ċ import Ġcom . fasterxml . jackson . databind . node . Null Node Ċ import Ġcom . fasterxml . jackson . databind . node . Text Node Ċ import Ġde . r ki . j fn . is Falsy Ċ import Ġde . r ki . j fn . is Truthy Ċ import Ġde . r ki . j fn . is Value Falsy Ċ import Ġde . r ki . j fn . is Value Truthy Ċ import Ġde . r ki . j fn . operators . extract From UV CI Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjava . math . BigInteger Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ /** Ċ Ġ* ĠShould Ġbe Ġin Ġsync Ġwith Ġthe Ġ` describe (" truth y Ġand Ġf alsy ", Ġ... `- part Ġof Ċ Ġ* Ġ` test - internals . ts ` Ġfrom Ġ` cert logic - js `. Ċ Ġ*/ Ċ internal Ġclass ĠTr uth y Falsy Tests Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġis Value Truthy `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ( no Ġundefined ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Truthy ( Null Node . instance )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Truthy ( Boolean Node . FALSE )) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Truthy ( Boolean Node . TRUE )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Truthy ( JsonNode Factory . instance . array Node ()), Ġ" empty Ġarray ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Value Truthy ( JsonNode Factory . instance . array Node (). add ( Text Node . valueOf (" foo ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" non - empty Ġarray " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Truthy ( JsonNode Factory . instance . object Node ()), Ġ" empty Ġobject ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Value Truthy ( JsonNode Factory . instance . object Node (). put (" foo ", Ġ" bar ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" non - empty Ġobject " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Truthy ( Text Node . valueOf (" foo "))) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Truthy ( Text Node . valueOf (" "))) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Truthy ( Int Node . valueOf (- 4 2 ))) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Truthy ( Int Node . valueOf ( 0 ))) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĠDouble Node . valueOf ( 3 . 1 4 ). is Truthy Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĠDouble Node . valueOf (- 3 . 1 4 ). is Truthy Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĠDouble Node . valueOf ( Double . POSITIVE _ INFINITY ). is Truthy Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĠDouble Node . valueOf ( Double . NEGATIVE _ INFINITY ). is Truthy Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġis Value Falsy `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ( no Ġundefined ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Falsy ( Null Node . instance )) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Falsy ( Boolean Node . FALSE )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Falsy ( Boolean Node . TRUE )) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Falsy ( JsonNode Factory . instance . array Node ()), Ġ" empty Ġarray ") ĊĠĠĠĠĠĠĠ ĠassertFalse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Value Falsy ( JsonNode Factory . instance . array Node (). add ( Text Node . valueOf (" foo ")) ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" non - empty Ġarray " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Falsy ( JsonNode Factory . instance . object Node ()), Ġ" empty Ġobject ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Value Truthy ( JsonNode Factory . instance . object Node (). put (" foo ", Ġ" bar ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" non - empty Ġobject " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Falsy ( Text Node . valueOf (" foo "))) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Falsy ( Text Node . valueOf (" "))) ĊĠĠĠĠĠĠĠ ĠassertFalse ( is Value Falsy ( Int Node . valueOf ( 4 2 ))) ĊĠĠĠĠĠĠĠ ĠassertTrue ( is Value Falsy ( Int Node . valueOf ( 0 ))) ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĠBigInteger Node . valueOf ( BigInteger . ZERO ). is Falsy Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĠDouble Node . valueOf ( Double . NaN ). is Falsy Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠShould Ġbe Ġin Ġsync Ġwith Ġthe Ġ` describe (" extract From UV CI ", Ġ... `- part Ġof Ġ` test - internals . ts ` Ġfrom Ċ Ġ* Ġ` cert logic - js `. Ċ Ġ*/ Ċ internal Ġclass ĠExtract From U VC IT ests Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġcheck For That ( uv ci : ĠString ?, Ġassertions : ĠList < Pair < Int , ĠString ? >> ): ĠUnit Ġ= ĊĠĠĠĠĠĠĠ Ġassertions . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertEquals ( it . second , Ġextract From UV CI ( uv ci , Ġit . first )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` returns Ġnull Ġon Ġnull Ġoperand `() Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck For That ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġto Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġto Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġto Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` works Ġcorrectly Ġon Ġan Ġempty Ġstring `() Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck For That ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġto Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġto Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġto Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` that Ġthing Ġthat Ġtest ers Ġdo Ġ( without Ġoptional Ġprefix )` () Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck For That ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" foo / bar :: baz # 9 9 9 liz ards ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġto Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġto Ġ" foo ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġto Ġ" bar ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġto Ġ"", Ġ// Ġnot Ġnull , Ġbut Ġstill Ġf alsy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġto Ġ" baz ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġto Ġ" 9 9 9 liz ards ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġto Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` that Ġthing Ġthat Ġtest ers Ġdo Ġ( with Ġoptional Ġprefix )` () Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck For That ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" URN : UV CI : foo / bar :: baz # 9 9 9 liz ards ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġto Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġto Ġ" foo ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġto Ġ" bar ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġto Ġ"", Ġ// Ġnot Ġnull , Ġbut Ġstill Ġf alsy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġto Ġ" baz ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġto Ġ" 9 9 9 liz ards ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġto Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġthe Ġexample Ġfrom Ġthe Ġspecification : ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` each Ġseparator Ġadds Ġa Ġfragment `() Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck For That ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" a :: c /#/ f ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġto Ġ" a ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġto Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġto Ġ" c ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġto Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġto Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġto Ġ" f " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ