(.module: [library [lux "*" ["_" test {"+" Test}] [control ["[0]" try]] [data ["[0]" text]]]] [\\library ["[0]" / ["n" nat] ["i" int] ["r" rev] ["f" frac]]] ["[0]" / "_" ["[1][0]" i8] ["[1][0]" i16] ["[1][0]" i32] ["[1][0]" i64] ["[1][0]" nat] ["[1][0]" int] ["[1][0]" rev] ["[1][0]" frac] ["[1][0]" ratio] ["[1][0]" complex]]) (def: clean_commas (-> Text Text) (text.replaced "," "")) (def: .public test Test (<| (_.covering /._) ($_ _.and (_.cover [/.bin] (`` (and (~~ (template [<=> ] [(case (# decoded (..clean_commas )) {try.#Success actual} (<=> (/.bin ) actual) {try.#Failure error} false)] [n.= n.binary "11001001"] [n.= n.binary "11,00,10,01"] [i.= i.binary "+11001001"] [i.= i.binary "-11,00,10,01"] [r.= r.binary ".11001001"] [r.= r.binary ".11,00,10,01"] [f.= f.binary "+1100.1001"] [f.= f.binary "-11,00.10,01"] ))))) (_.cover [/.oct] (`` (and (~~ (template [<=> ] [(case (# decoded (..clean_commas )) {try.#Success actual} (<=> (/.oct ) actual) {try.#Failure error} false)] [n.= n.octal "615243"] [n.= n.octal "615,243"] [i.= i.octal "+615243"] [i.= i.octal "-615,243"] [r.= r.octal ".615243"] [r.= r.octal ".615,243"] [f.= f.octal "+6152.43"] [f.= f.octal "-61,52.43"] ))))) (_.cover [/.hex] (`` (and (~~ (template [<=> ] [(case (# decoded (..clean_commas )) {try.#Success actual} (<=> (/.hex ) actual) {try.#Failure error} false)] [n.= n.hex "deadBEEF"] [n.= n.hex "dead,BEEF"] [i.= i.hex "+deadBEEF"] [i.= i.hex "-dead,BEEF"] [r.= r.hex ".deadBEEF"] [r.= r.hex ".dead,BEEF"] [f.= f.hex "+dead.BEEF"] [f.= f.hex "-dead,BE.EF"] ))))) /i8.test /i16.test /i32.test /i64.test /nat.test /int.test /rev.test /frac.test /ratio.test /complex.test )))