diff options
Diffstat (limited to 'stdlib/source/test')
81 files changed, 450 insertions, 488 deletions
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux index 34599cf81..5fcef9a0c 100644 --- a/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux +++ b/stdlib/source/test/aedifex/artifact/snapshot/version/value.lux @@ -10,7 +10,7 @@ ["[0]" try (.open: "[1]#[0]" functor)]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] ["<[1]>" \\parser]]] [math ["[0]" random (.only Random) (.open: "[1]#[0]" monad)] diff --git a/stdlib/source/test/aedifex/command/auto.lux b/stdlib/source/test/aedifex/command/auto.lux index b483ecd2c..6834fe8eb 100644 --- a/stdlib/source/test/aedifex/command/auto.lux +++ b/stdlib/source/test/aedifex/command/auto.lux @@ -15,7 +15,7 @@ [data ["[0]" binary] ["[0]" text (.only) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] [collection diff --git a/stdlib/source/test/aedifex/command/clean.lux b/stdlib/source/test/aedifex/command/clean.lux index 4ead63063..4f37c7bc3 100644 --- a/stdlib/source/test/aedifex/command/clean.lux +++ b/stdlib/source/test/aedifex/command/clean.lux @@ -12,7 +12,7 @@ [binary (.only Binary)] ["[0]" product] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)] ["[0]" set]]] diff --git a/stdlib/source/test/aedifex/command/deploy.lux b/stdlib/source/test/aedifex/command/deploy.lux index d62e027dd..871083df6 100644 --- a/stdlib/source/test/aedifex/command/deploy.lux +++ b/stdlib/source/test/aedifex/command/deploy.lux @@ -14,7 +14,7 @@ [data ["[0]" binary (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] ["[0]" format diff --git a/stdlib/source/test/aedifex/command/deps.lux b/stdlib/source/test/aedifex/command/deps.lux index d9af2990b..450152fe2 100644 --- a/stdlib/source/test/aedifex/command/deps.lux +++ b/stdlib/source/test/aedifex/command/deps.lux @@ -13,7 +13,7 @@ ["[0]" environment]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] [collection diff --git a/stdlib/source/test/aedifex/command/install.lux b/stdlib/source/test/aedifex/command/install.lux index 55bb762d0..de26f5ecb 100644 --- a/stdlib/source/test/aedifex/command/install.lux +++ b/stdlib/source/test/aedifex/command/install.lux @@ -14,7 +14,7 @@ [data ["[0]" binary] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" set (.only Set)]]] [math diff --git a/stdlib/source/test/aedifex/command/version.lux b/stdlib/source/test/aedifex/command/version.lux index 96b8cdf3b..740065820 100644 --- a/stdlib/source/test/aedifex/command/version.lux +++ b/stdlib/source/test/aedifex/command/version.lux @@ -12,7 +12,7 @@ ["[0]" async (.only Async)]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random]] [meta diff --git a/stdlib/source/test/aedifex/dependency/deployment.lux b/stdlib/source/test/aedifex/dependency/deployment.lux index 794464839..0c605141a 100644 --- a/stdlib/source/test/aedifex/dependency/deployment.lux +++ b/stdlib/source/test/aedifex/dependency/deployment.lux @@ -16,7 +16,7 @@ ["[0]" product] ["[0]" binary (.only Binary) (.open: "[1]#[0]" equivalence)] ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" dictionary (.only Dictionary)] ["[0]" set] diff --git a/stdlib/source/test/aedifex/dependency/resolution.lux b/stdlib/source/test/aedifex/dependency/resolution.lux index 31cd54fad..598b7fa24 100644 --- a/stdlib/source/test/aedifex/dependency/resolution.lux +++ b/stdlib/source/test/aedifex/dependency/resolution.lux @@ -16,7 +16,7 @@ [binary (.only Binary)] ["[0]" product] ["[0]" text (.only) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] [format diff --git a/stdlib/source/test/aedifex/hash.lux b/stdlib/source/test/aedifex/hash.lux index 921461cf8..b4ef53c73 100644 --- a/stdlib/source/test/aedifex/hash.lux +++ b/stdlib/source/test/aedifex/hash.lux @@ -13,7 +13,7 @@ [data ["[0]" binary (.only Binary)] [text - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/aedifex/input.lux b/stdlib/source/test/aedifex/input.lux index 874170bc2..6932ccf56 100644 --- a/stdlib/source/test/aedifex/input.lux +++ b/stdlib/source/test/aedifex/input.lux @@ -10,7 +10,7 @@ ["[0]" async (.only Async)]]] [data [text - ["%" format] + ["%" \\format] [encoding ["[0]" utf8]]] [collection diff --git a/stdlib/source/test/aedifex/repository.lux b/stdlib/source/test/aedifex/repository.lux index 56a5c7b54..6b4feec76 100644 --- a/stdlib/source/test/aedifex/repository.lux +++ b/stdlib/source/test/aedifex/repository.lux @@ -14,7 +14,7 @@ ["[0]" product] ["[0]" binary (.only Binary)] ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" dictionary (.only Dictionary)]]] [math diff --git a/stdlib/source/test/aedifex/repository/remote.lux b/stdlib/source/test/aedifex/repository/remote.lux index 440a74ac5..75e9ff35e 100644 --- a/stdlib/source/test/aedifex/repository/remote.lux +++ b/stdlib/source/test/aedifex/repository/remote.lux @@ -13,7 +13,7 @@ [data ["[0]" binary (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] [collection diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux index 68235d16c..ad0f5fc95 100644 --- a/stdlib/source/test/lux.lux +++ b/stdlib/source/test/lux.lux @@ -18,7 +18,7 @@ ["[0]" product] ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)] ["[0]" set (.only Set) (.open: "[1]#[0]" equivalence)] diff --git a/stdlib/source/test/lux/control/concurrency/actor.lux b/stdlib/source/test/lux/control/concurrency/actor.lux index d883e6c0f..4570a3708 100644 --- a/stdlib/source/test/lux/control/concurrency/actor.lux +++ b/stdlib/source/test/lux/control/concurrency/actor.lux @@ -10,7 +10,7 @@ ["[0]" io (.only IO io)]] [data [text - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list] ["[0]" sequence (.only Sequence)]]] diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux index 64a5cd067..e71f42484 100644 --- a/stdlib/source/test/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux @@ -16,7 +16,7 @@ ["[0]" atom (.only Atom)]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)]]] [math diff --git a/stdlib/source/test/lux/control/exception.lux b/stdlib/source/test/lux/control/exception.lux index 34756195a..8dcdb7ec6 100644 --- a/stdlib/source/test/lux/control/exception.lux +++ b/stdlib/source/test/lux/control/exception.lux @@ -6,7 +6,7 @@ [monad (.only do)]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random] [number diff --git a/stdlib/source/test/lux/control/function/mutual.lux b/stdlib/source/test/lux/control/function/mutual.lux index 3d936c6dd..a263e5c96 100644 --- a/stdlib/source/test/lux/control/function/mutual.lux +++ b/stdlib/source/test/lux/control/function/mutual.lux @@ -7,7 +7,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] [text - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/lux/control/parser.lux b/stdlib/source/test/lux/control/parser.lux index 8995346a9..3b9029fca 100644 --- a/stdlib/source/test/lux/control/parser.lux +++ b/stdlib/source/test/lux/control/parser.lux @@ -15,7 +15,7 @@ ["<[0]>" code]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)]]] [math diff --git a/stdlib/source/test/lux/control/parser/binary.lux b/stdlib/source/test/lux/control/parser/binary.lux index 2905430dc..e8caa2dc9 100644 --- a/stdlib/source/test/lux/control/parser/binary.lux +++ b/stdlib/source/test/lux/control/parser/binary.lux @@ -14,15 +14,14 @@ ["[0]" exception] ["<>" parser]] [data - ["[0]" binary] ["[0]" sum] ["[0]" bit] + ["[0]" binary (.only) + ["[0]" \\format]] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] - ["[0]" format - ["[1]" binary]] [collection ["[0]" list] ["[0]" sequence] @@ -132,16 +131,16 @@ [expected (at ! each (i64.and (i64.mask <size>)) random.nat)] (_.coverage [<size> <parser> <format>] - (|> (format.result <format> expected) + (|> (\\format.result <format> expected) (/.result <parser>) (!expect (^.multi {try.#Success actual} (n.= (.nat expected) (.nat actual)))))))] - [/.size_8 /.bits_8 format.bits_8] - [/.size_16 /.bits_16 format.bits_16] - [/.size_32 /.bits_32 format.bits_32] - [/.size_64 /.bits_64 format.bits_64] + [/.size_8 /.bits_8 \\format.bits_8] + [/.size_16 /.bits_16 \\format.bits_16] + [/.size_32 /.bits_32 \\format.bits_32] + [/.size_64 /.bits_64 \\format.bits_64] )))))) (def: binary @@ -151,15 +150,15 @@ [(do [! random.monad] [expected (at ! each (at utf8.codec encoded) (random.ascii ..segment_size))] (_.coverage [<parser> <format>] - (|> (format.result <format> expected) + (|> (\\format.result <format> expected) (/.result <parser>) (!expect (^.multi {try.#Success actual} (at binary.equivalence = expected actual))))))] - [/.binary_8 format.binary_8] - [/.binary_16 format.binary_16] - [/.binary_32 format.binary_32] - [/.binary_64 format.binary_64] + [/.binary_8 \\format.binary_8] + [/.binary_16 \\format.binary_16] + [/.binary_32 \\format.binary_32] + [/.binary_64 \\format.binary_64] ))))) (def: utf8 @@ -169,16 +168,16 @@ [(do [! random.monad] [expected (random.ascii ..segment_size)] (_.coverage [<parser> <format>] - (|> (format.result <format> expected) + (|> (\\format.result <format> expected) (/.result <parser>) (!expect (^.multi {try.#Success actual} (at text.equivalence = expected actual))))))] - [/.utf8_8 format.utf8_8] - [/.utf8_16 format.utf8_16] - [/.utf8_32 format.utf8_32] - [/.utf8_64 format.utf8_64] - [/.text format.text] + [/.utf8_8 \\format.utf8_8] + [/.utf8_16 \\format.utf8_16] + [/.utf8_32 \\format.utf8_32] + [/.utf8_64 \\format.utf8_64] + [/.text \\format.text] ))))) (def: sequence @@ -189,15 +188,15 @@ [expected (random.sequence ..segment_size random.nat)] (_.coverage [<parser> <format>] (|> expected - (format.result (<format> format.nat)) + (\\format.result (<format> \\format.nat)) (/.result (<parser> /.nat)) (!expect (^.multi {try.#Success actual} (at (sequence.equivalence n.equivalence) = expected actual))))))] - [/.sequence_8 format.sequence_8] - [/.sequence_16 format.sequence_16] - [/.sequence_32 format.sequence_32] - [/.sequence_64 format.sequence_64] + [/.sequence_8 \\format.sequence_8] + [/.sequence_16 \\format.sequence_16] + [/.sequence_32 \\format.sequence_32] + [/.sequence_64 \\format.sequence_64] ))))) (def: simple @@ -208,20 +207,20 @@ [expected <random>] (_.coverage [<parser> <format>] (|> expected - (format.result <format>) + (\\format.result <format>) (/.result <parser>) (!expect (^.multi {try.#Success actual} (at <equivalence> = expected actual))))))] - [/.bit format.bit random.bit bit.equivalence] - [/.nat format.nat random.nat n.equivalence] - [/.int format.int random.int int.equivalence] - [/.rev format.rev random.rev rev.equivalence])) + [/.bit \\format.bit random.bit bit.equivalence] + [/.nat \\format.nat random.nat n.equivalence] + [/.int \\format.int random.int int.equivalence] + [/.rev \\format.rev random.rev rev.equivalence])) (do [! random.monad] [expected random.frac] - (_.coverage [/.frac format.frac] + (_.coverage [/.frac \\format.frac] (|> expected - (format.result format.frac) + (\\format.result \\format.frac) (/.result /.frac) (!expect (^.multi {try.#Success actual} (or (at frac.equivalence = expected actual) @@ -233,7 +232,7 @@ random.nat)] (_.coverage [/.not_a_bit] (|> expected - (format.result format.bits_8) + (\\format.result \\format.bits_8) (/.result /.bit) (!expect (^.multi {try.#Failure error} (exception.match? /.not_a_bit error)))))) @@ -247,42 +246,42 @@ [expected <random>] (_.coverage [<parser> <format>] (|> expected - (format.result <format>) + (\\format.result <format>) (/.result <parser>) (!expect (^.multi {try.#Success actual} (at <equivalence> = expected actual))))))] - [/.location format.location random_location location_equivalence] - [/.code format.code random_code code.equivalence] - [/.type format.type random_type type.equivalence] + [/.location \\format.location random_location location_equivalence] + [/.code \\format.code random_code code.equivalence] + [/.type \\format.type random_type type.equivalence] )) (~~ (with_template [<parser_coverage> <parser> <coverage_format> <format> <random> <equivalence>] [(do [! random.monad] [expected <random>] (_.coverage [<parser_coverage> <coverage_format>] (|> expected - (format.result <format>) + (\\format.result <format>) (/.result <parser>) (!expect (^.multi {try.#Success actual} (at <equivalence> = expected actual))))))] - [/.maybe (/.maybe /.nat) format.maybe (format.maybe format.nat) (random.maybe random.nat) (maybe.equivalence n.equivalence)] - [/.list (/.list /.nat) format.list (format.list format.nat) (random.list ..segment_size random.nat) (list.equivalence n.equivalence)] - [/.set (/.set n.hash /.nat) format.set (format.set format.nat) (random.set n.hash ..segment_size random.nat) set.equivalence] - [/.symbol /.symbol format.symbol format.symbol ..random_symbol symbol.equivalence])) + [/.maybe (/.maybe /.nat) \\format.maybe (\\format.maybe \\format.nat) (random.maybe random.nat) (maybe.equivalence n.equivalence)] + [/.list (/.list /.nat) \\format.list (\\format.list \\format.nat) (random.list ..segment_size random.nat) (list.equivalence n.equivalence)] + [/.set (/.set n.hash /.nat) \\format.set (\\format.set \\format.nat) (random.set n.hash ..segment_size random.nat) set.equivalence] + [/.symbol /.symbol \\format.symbol \\format.symbol ..random_symbol symbol.equivalence])) (do [! random.monad] [expected (at ! each (list.repeated ..segment_size) random.nat)] (_.coverage [/.set_elements_are_not_unique] (|> expected - (format.result (format.list format.nat)) + (\\format.result (\\format.list \\format.nat)) (/.result (/.set n.hash /.nat)) (!expect (^.multi {try.#Failure error} (exception.match? /.set_elements_are_not_unique error)))))) (do [! random.monad] [expected (random.or random.bit random.nat)] - (_.coverage [/.or format.or] + (_.coverage [/.or \\format.or] (|> expected - (format.result (format.or format.bit format.nat)) + (\\format.result (\\format.or \\format.bit \\format.nat)) (/.result (is (/.Parser (Either Bit Nat)) (/.or /.bit /.nat))) (!expect (^.multi {try.#Success actual} @@ -296,17 +295,17 @@ value random.bit] (_.coverage [/.invalid_tag] (|> [tag value] - (format.result (format.and format.bits_8 format.bit)) + (\\format.result (\\format.and \\format.bits_8 \\format.bit)) (/.result (is (/.Parser (Either Bit Nat)) (/.or /.bit /.nat))) (!expect (^.multi {try.#Failure error} (exception.match? /.invalid_tag error)))))) (do [! random.monad] [expected (random.list ..segment_size random.nat)] - (_.coverage [/.rec format.rec format.and format.any] + (_.coverage [/.rec \\format.rec \\format.and \\format.any] (|> expected - (format.result (format.rec (|>> (format.and format.nat) - (format.or format.any)))) + (\\format.result (\\format.rec (|>> (\\format.and \\format.nat) + (\\format.or \\format.any)))) (/.result (is (/.Parser (List Nat)) (/.rec (function (_ again) @@ -325,8 +324,8 @@ (_.for [/.Parser]) (`` (all _.and (_.coverage [/.result /.any - format.no_op format.instance] - (|> (format.instance format.no_op) + \\format.no_op \\format.instance] + (|> (\\format.instance \\format.no_op) (/.result /.any) (!expect {try.#Success _}))) (do [! random.monad] @@ -338,9 +337,9 @@ (exception.match? /.binary_was_not_fully_read error)))))) (do [! random.monad] [expected (at ! each (at utf8.codec encoded) (random.ascii ..segment_size))] - (_.coverage [/.segment format.segment format.result] + (_.coverage [/.segment \\format.segment \\format.result] (|> expected - (format.result (format.segment ..segment_size)) + (\\format.result (\\format.segment ..segment_size)) (/.result (/.segment ..segment_size)) (!expect (^.multi {try.#Success actual} (at binary.equivalence = expected actual)))))) diff --git a/stdlib/source/test/lux/control/parser/type.lux b/stdlib/source/test/lux/control/parser/type.lux index e928d3903..43935a76f 100644 --- a/stdlib/source/test/lux/control/parser/type.lux +++ b/stdlib/source/test/lux/control/parser/type.lux @@ -10,7 +10,7 @@ ["[0]" exception]] [data [text - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list]]] [macro diff --git a/stdlib/source/test/lux/control/pipe.lux b/stdlib/source/test/lux/control/pipe.lux index cc455e8aa..3bee082a9 100644 --- a/stdlib/source/test/lux/control/pipe.lux +++ b/stdlib/source/test/lux/control/pipe.lux @@ -8,7 +8,7 @@ [data ["[0]" identity] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random] [number diff --git a/stdlib/source/test/lux/control/remember.lux b/stdlib/source/test/lux/control/remember.lux index 090810aab..263209c34 100644 --- a/stdlib/source/test/lux/control/remember.lux +++ b/stdlib/source/test/lux/control/remember.lux @@ -14,7 +14,7 @@ [data ["[0]" product] ["[0]" text (.only) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math [number (.only hex)] ["[0]" random (.only Random) (.open: "[1]#[0]" monad)]] diff --git a/stdlib/source/test/lux/data.lux b/stdlib/source/test/lux/data.lux index 30ffac578..68e1b03f8 100644 --- a/stdlib/source/test/lux/data.lux +++ b/stdlib/source/test/lux/data.lux @@ -16,7 +16,6 @@ ["[1][0]" sum] ["[1][0]" text] ["[1][0]" format - ["[1]/[0]" binary] ["[1]/[0]" json] ["[1]/[0]" tar] ["[1]/[0]" xml]] @@ -33,7 +32,6 @@ (def: format Test (all _.and - /format/binary.test /format/json.test /format/tar.test /format/xml.test diff --git a/stdlib/source/test/lux/data/binary.lux b/stdlib/source/test/lux/data/binary.lux index dd5949cab..50a3f786f 100644 --- a/stdlib/source/test/lux/data/binary.lux +++ b/stdlib/source/test/lux/data/binary.lux @@ -4,6 +4,7 @@ [ffi (.only)] ["_" test (.only Test)] [abstract + [equivalence (.only Equivalence)] ["[0]" monad (.only do)] ["[0]" enum] [\\specification @@ -23,8 +24,29 @@ ["n" nat] ["[0]" i64]]]]] [\\library - ["[0]" / (.only) - ["!" \\unsafe]]]) + ["[0]" / (.only) (.open: "[1]#[0]" equivalence) + ["!" \\unsafe] + ["[0]" \\format]]]) + +(def: equivalence + (Equivalence \\format.Specification) + (implementation + (def: (= reference subject) + (/#= (\\format.instance reference) + (\\format.instance subject))))) + +(def: random_specification + (Random \\format.Specification) + (at random.monad each \\format.nat random.nat)) + +(def: \\format + Test + (<| (_.covering \\format._) + (_.for [\\format.Mutation \\format.Specification \\format.Writer]) + (all _.and + (_.for [\\format.monoid] + ($monoid.spec ..equivalence \\format.monoid ..random_specification)) + ))) (def: (succeed result) (-> (Try Bit) Bit) @@ -240,4 +262,5 @@ (/.copy! size 0 sample offset (/.empty size))))) ..test|unsafe + ..\\format )))) diff --git a/stdlib/source/test/lux/data/collection/stream.lux b/stdlib/source/test/lux/data/collection/stream.lux index 22d572198..17bb614ad 100644 --- a/stdlib/source/test/lux/data/collection/stream.lux +++ b/stdlib/source/test/lux/data/collection/stream.lux @@ -11,7 +11,7 @@ ["$[0]" comonad]]] [data ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)]]] [math diff --git a/stdlib/source/test/lux/data/format/binary.lux b/stdlib/source/test/lux/data/format/binary.lux deleted file mode 100644 index f20117690..000000000 --- a/stdlib/source/test/lux/data/format/binary.lux +++ /dev/null @@ -1,35 +0,0 @@ -(.using - [library - [lux (.except) - ["_" test (.only Test)] - [abstract - [equivalence (.only Equivalence)] - [monad (.only do)] - [\\specification - ["$[0]" monoid]]] - [data - ["[0]" binary (.open: "[1]#[0]" equivalence)]] - [math - ["[0]" random (.only Random)]]]] - [\\library - ["[0]" /]]) - -(def: equivalence - (Equivalence /.Specification) - (implementation - (def: (= reference subject) - (binary#= (/.instance reference) - (/.instance subject))))) - -(def: random - (Random /.Specification) - (at random.monad each /.nat random.nat)) - -(def: .public test - Test - (<| (_.covering /._) - (_.for [/.Mutation /.Specification /.Writer]) - (all _.and - (_.for [/.monoid] - ($monoid.spec ..equivalence /.monoid ..random)) - ))) diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux index d96c0a92c..2133f51f1 100644 --- a/stdlib/source/test/lux/data/format/json.lux +++ b/stdlib/source/test/lux/data/format/json.lux @@ -22,7 +22,7 @@ ["[0]" product] ["[0]" bit] ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" sequence (.only sequence)] ["[0]" dictionary (.only Dictionary)] diff --git a/stdlib/source/test/lux/data/format/tar.lux b/stdlib/source/test/lux/data/format/tar.lux index 33487622a..ba81d4153 100644 --- a/stdlib/source/test/lux/data/format/tar.lux +++ b/stdlib/source/test/lux/data/format/tar.lux @@ -12,9 +12,10 @@ ["<b>" binary]]] [data ["[0]" product] - ["[0]" binary (.open: "[1]#[0]" equivalence monoid)] + ["[0]" binary (.open: "[1]#[0]" equivalence monoid) + ["[0]" \\format]] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]] ["[0]" unicode @@ -22,9 +23,7 @@ ["[1]/[0]" block]]] [collection ["[0]" sequence] - ["[0]" list (.open: "[1]#[0]" mix)]] - ["[0]" format - ["[1]" binary]]] + ["[0]" list (.open: "[1]#[0]" mix)]]] [time ["[0]" instant (.only Instant)] ["[0]" duration]] @@ -172,7 +171,7 @@ (|> (do try.monad [expected_path (/.path expected_path) tar (|> (sequence.sequence {<tag> expected_path}) - (format.result /.writer) + (\\format.result /.writer) (<b>.result /.parser))] (in (case (sequence.list tar) (pattern (list {<tag> actual_path})) @@ -201,7 +200,7 @@ /.#group [/.#name /.anonymous /.#id /.no_id]] expected_content]}) - (format.result /.writer) + (\\format.result /.writer) (<b>.result /.parser))] (in (case (sequence.list tar) (pattern (list {<tag> [actual_path actual_moment actual_mode actual_ownership actual_content]})) @@ -259,7 +258,7 @@ /.#group [/.#name /.anonymous /.#id /.no_id]] content]}) - (format.result /.writer) + (\\format.result /.writer) (<b>.result /.parser))] (in (case (sequence.list tar) (pattern (list {/.#Normal [_ _ actual_mode _ _]})) @@ -282,7 +281,7 @@ /.#group [/.#name /.anonymous /.#id /.no_id]] content]}) - (format.result /.writer) + (\\format.result /.writer) (<b>.result /.parser))] (in (case (sequence.list tar) (pattern (list {/.#Normal [_ _ actual_mode _ _]})) @@ -349,7 +348,7 @@ /.#group [/.#name /.anonymous /.#id /.no_id]] content]}) - (format.result /.writer) + (\\format.result /.writer) (<b>.result /.parser))] (in (case (sequence.list tar) (pattern (list {/.#Normal [_ _ _ actual_ownership _]})) @@ -373,7 +372,7 @@ /.#group [/.#name /.anonymous /.#id /.no_id]] content]}) - (format.result /.writer) + (\\format.result /.writer) (<b>.result /.parser))] (in (case (sequence.list tar) (pattern (list {/.#Normal [_ _ _ actual_ownership _]})) @@ -400,12 +399,12 @@ (all _.and (_.coverage [/.writer /.parser] (|> sequence.empty - (format.result /.writer) + (\\format.result /.writer) (<b>.result /.parser) (at try.monad each sequence.empty?) (try.else false))) (_.coverage [/.invalid_end_of_archive] - (let [dump (format.result /.writer sequence.empty)] + (let [dump (\\format.result /.writer sequence.empty)] (case (<b>.result /.parser (binary#composite dump dump)) {try.#Success _} false diff --git a/stdlib/source/test/lux/data/format/xml.lux b/stdlib/source/test/lux/data/format/xml.lux index d792a8f87..72be44fa1 100644 --- a/stdlib/source/test/lux/data/format/xml.lux +++ b/stdlib/source/test/lux/data/format/xml.lux @@ -14,7 +14,7 @@ ["</>" xml]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" dictionary] ["[0]" list (.open: "[1]#[0]" functor)]]] diff --git a/stdlib/source/test/lux/data/text.lux b/stdlib/source/test/lux/data/text.lux index e283b6081..3c65ea9ff 100644 --- a/stdlib/source/test/lux/data/text.lux +++ b/stdlib/source/test/lux/data/text.lux @@ -2,13 +2,17 @@ [library [lux (.except char) ["_" test (.only Test)] + ["[0]" type] [abstract [monad (.only do)] + [equivalence (.only Equivalence)] [\\specification ["$[0]" equivalence] ["$[0]" hash] ["$[0]" order] - ["$[0]" monoid]]] + ["$[0]" monoid] + [functor + ["$[0]" contravariant]]]] [control ["[0]" pipe] ["[0]" maybe] @@ -16,15 +20,18 @@ ["[0]" exception (.only Exception)] ["[0]" function] ["<>" parser (.only) - ["<c>" code]]] + ["<[0]>" code]]] [data + ["[0]" bit] [collection ["[0]" set] ["[0]" list (.open: "[1]#[0]" functor)] [tree ["[0]" finger]]] + [format + ["[0]" xml] + ["[0]" json]] [text - ["%" format (.only format)] ["[0]" unicode ["[1]" set] ["[1]/[0]" block]]]] @@ -32,20 +39,178 @@ ["^" pattern] ["[0]" code]] [math - ["[0]" random] - [number (.only hex) - ["n" nat]]]]] + ["[0]" random (.only Random) (.open: "[1]#[0]" monad)] + ["[0]" modulus] + ["[0]" modular] + [number + ["[0]" nat] + ["[0]" int] + ["[0]" rev] + ["[0]" frac] + ["[0]" ratio]]] + [meta + ["[0]" location] + ["[0]" symbol]] + ["[0]" time (.only) + ["[0]" day] + ["[0]" month] + ["[0]" instant] + ["[0]" duration] + ["[0]" date]]]] + ["$[0]" // + [format + ["[1][0]" xml] + ["[1][0]" json]] + [// + ["[1][0]" type] + [macro + ["[1][0]" code]] + [meta + ["[1][0]" symbol]]]] ["[0]" / ["[1][0]" buffer] ["[1][0]" encoding] - ["[1][0]" format] ["[1][0]" regex] ["[1][0]" escape] ["[1][0]" unicode ["[1]" set]]] [\\library ["[0]" / (.open: "[1]#[0]" equivalence)]] - ["[0]" \\parser]) + ["[0]" \\parser] + ["[0]" \\format]) + +(def: (equivalence example) + (All (_ a) (-> a (Equivalence (\\format.Format a)))) + (implementation + (def: (= reference subject) + (/#= (reference example) (subject example))))) + +(def: random_contravariant + (Random (Ex (_ a) + [(\\format.Format a) + (Random a)])) + (all random.either + (random#in [\\format.bit random.bit]) + (random#in [\\format.nat random.nat]) + (random#in [\\format.int random.int]) + (random#in [\\format.rev random.rev]) + (random#in [\\format.frac random.frac]) + )) + +(def: codec + Test + (`` (all _.and + (~~ (with_template [<format> <codec> <random>] + [(do random.monad + [sample <random>] + (_.coverage [<format>] + (/#= (at <codec> encoded sample) + (<format> sample))))] + + [\\format.bit bit.codec random.bit] + [\\format.nat nat.decimal random.nat] + [\\format.int int.decimal random.int] + [\\format.rev rev.decimal random.rev] + [\\format.frac frac.decimal random.frac] + [\\format.ratio ratio.codec random.ratio] + [\\format.symbol symbol.codec ($//symbol.random 5 5)] + [\\format.xml xml.codec $//xml.random] + [\\format.json json.codec $//json.random] + [\\format.day day.codec random.day] + [\\format.month month.codec random.month] + [\\format.instant instant.codec random.instant] + [\\format.duration duration.codec random.duration] + [\\format.date date.codec random.date] + [\\format.time time.codec random.time] + + [\\format.nat_2 nat.binary random.nat] + [\\format.nat_8 nat.octal random.nat] + [\\format.nat_10 nat.decimal random.nat] + [\\format.nat_16 nat.hex random.nat] + + [\\format.int_2 int.binary random.int] + [\\format.int_8 int.octal random.int] + [\\format.int_10 int.decimal random.int] + [\\format.int_16 int.hex random.int] + + [\\format.rev_2 rev.binary random.rev] + [\\format.rev_8 rev.octal random.rev] + [\\format.rev_10 rev.decimal random.rev] + [\\format.rev_16 rev.hex random.rev] + + [\\format.frac_2 frac.binary random.frac] + [\\format.frac_8 frac.octal random.frac] + [\\format.frac_10 frac.decimal random.frac] + [\\format.frac_16 frac.hex random.frac] + )) + ))) + +(def: \\format + Test + (<| (_.covering \\format._) + (_.for [\\format.Format]) + (`` (all _.and + (_.for [\\format.functor] + (do random.monad + [[format random] ..random_contravariant + example random] + ($contravariant.spec (..equivalence example) + format + \\format.functor))) + + (do random.monad + [left (random.unicode 5) + mid (random.unicode 5) + right (random.unicode 5)] + (_.coverage [\\format.format] + (/#= (\\format.format left mid right) + (all "lux text concat" left mid right)))) + ..codec + (~~ (with_template [<format> <alias> <random>] + [(do random.monad + [sample <random>] + (_.coverage [<format>] + (/#= (<alias> sample) + (<format> sample))))] + + [\\format.text /.format (random.unicode 5)] + [\\format.code code.format $//code.random] + [\\format.type type.format ($//type.random 0)] + [\\format.location location.format + (all random.and + (random.unicode 5) + random.nat + random.nat)] + )) + (do random.monad + [members (random.list 5 random.nat)] + (_.coverage [\\format.list] + (/#= (\\format.list \\format.nat members) + (|> members + (list#each \\format.nat) + (/.interposed " ") + list + (\\format.list (|>>)))))) + (do random.monad + [sample (random.maybe random.nat)] + (_.coverage [\\format.maybe] + (case sample + {.#None} + true + + {.#Some value} + (/.contains? (\\format.nat value) + (\\format.maybe \\format.nat sample))))) + (do [! random.monad] + [modulus (random.one (|>> modulus.modulus + try.maybe) + random.int) + sample (at ! each (modular.modular modulus) + random.int)] + (_.coverage [\\format.mod] + (/#= (at (modular.codec modulus) encoded sample) + (\\format.mod sample)))) + )))) (def: !expect (template (_ <pattern> <value>) @@ -89,13 +254,13 @@ Test (all _.and (do [! random.monad] - [offset (at ! each (n.% 50) random.nat) - range (at ! each (|>> (n.% 50) (n.+ 10)) random.nat) - .let [limit (n.+ offset range)] - expected (at ! each (|>> (n.% range) (n.+ offset) /.of_char) random.nat) + [offset (at ! each (nat.% 50) random.nat) + range (at ! each (|>> (nat.% 50) (nat.+ 10)) random.nat) + .let [limit (nat.+ offset range)] + expected (at ! each (|>> (nat.% range) (nat.+ offset) /.of_char) random.nat) out_of_range (case offset - 0 (at ! each (|>> (n.% 10) ++ (n.+ limit) /.of_char) random.nat) - _ (at ! each (|>> (n.% offset) /.of_char) random.nat))] + 0 (at ! each (|>> (nat.% 10) ++ (nat.+ limit) /.of_char) random.nat) + _ (at ! each (|>> (nat.% offset) /.of_char) random.nat))] (_.coverage [\\parser.range] (and (..should_pass expected (\\parser.range offset limit)) (..should_fail out_of_range (\\parser.range offset limit))))) @@ -114,22 +279,22 @@ (and (..should_pass (/.of_char expected) \\parser.lower) (..should_fail (/.of_char invalid) \\parser.lower)))) (do [! random.monad] - [expected (at ! each (n.% 10) random.nat) + [expected (at ! each (nat.% 10) random.nat) invalid (random.char (unicode.set [unicode/block.number_forms (list)]))] (_.coverage [\\parser.decimal] - (and (..should_pass (at n.decimal encoded expected) \\parser.decimal) + (and (..should_pass (at nat.decimal encoded expected) \\parser.decimal) (..should_fail (/.of_char invalid) \\parser.decimal)))) (do [! random.monad] - [expected (at ! each (n.% 8) random.nat) + [expected (at ! each (nat.% 8) random.nat) invalid (random.char (unicode.set [unicode/block.number_forms (list)]))] (_.coverage [\\parser.octal] - (and (..should_pass (at n.octal encoded expected) \\parser.octal) + (and (..should_pass (at nat.octal encoded expected) \\parser.octal) (..should_fail (/.of_char invalid) \\parser.octal)))) (do [! random.monad] - [expected (at ! each (n.% 16) random.nat) + [expected (at ! each (nat.% 16) random.nat) invalid (random.char (unicode.set [unicode/block.number_forms (list)]))] (_.coverage [\\parser.hexadecimal] - (and (..should_pass (at n.hex encoded expected) \\parser.hexadecimal) + (and (..should_pass (at nat.hex encoded expected) \\parser.hexadecimal) (..should_fail (/.of_char invalid) \\parser.hexadecimal)))) (do [! random.monad] [expected (random.char unicode.alphabetic) @@ -171,13 +336,13 @@ (do [! random.monad] [.let [num_options 3] options (|> (random.char unicode.character) - (random.set n.hash num_options) + (random.set nat.hash num_options) (at ! each (|>> set.list (list#each /.of_char) /.together))) expected (at ! each (function (_ value) (|> options - (/.char (n.% num_options value)) + (/.char (nat.% num_options value)) maybe.trusted)) random.nat) invalid (random.only (function (_ char) @@ -197,13 +362,13 @@ (do [! random.monad] [.let [num_options 3] options (|> (random.char unicode.character) - (random.set n.hash num_options) + (random.set nat.hash num_options) (at ! each (|>> set.list (list#each /.of_char) /.together))) invalid (at ! each (function (_ value) (|> options - (/.char (n.% num_options value)) + (/.char (nat.% num_options value)) maybe.trusted)) random.nat) expected (random.only (function (_ char) @@ -227,26 +392,26 @@ (let [octal! (\\parser.one_of! "01234567")] (all _.and (do [! random.monad] - [left (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat) - right (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat) - .let [expected (format left right)] + [left (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat) + right (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat) + .let [expected (\\format.format left right)] invalid (|> random.nat - (at ! each (n.% 16)) - (random.only (n.>= 8)) - (at ! each (at n.hex encoded)))] + (at ! each (nat.% 16)) + (random.only (nat.>= 8)) + (at ! each (at nat.hex encoded)))] (_.coverage [\\parser.many \\parser.many!] (and (..should_pass expected (\\parser.many \\parser.octal)) (..should_fail invalid (\\parser.many \\parser.octal)) (..should_pass! expected (\\parser.many! octal!))))) (do [! random.monad] - [left (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat) - right (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat) - .let [expected (format left right)] + [left (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat) + right (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat) + .let [expected (\\format.format left right)] invalid (|> random.nat - (at ! each (n.% 16)) - (random.only (n.>= 8)) - (at ! each (at n.hex encoded)))] + (at ! each (nat.% 16)) + (random.only (nat.>= 8)) + (at ! each (at nat.hex encoded)))] (_.coverage [\\parser.some \\parser.some!] (and (..should_pass expected (\\parser.some \\parser.octal)) (..should_pass "" (\\parser.some \\parser.octal)) @@ -255,57 +420,57 @@ (..should_pass! expected (\\parser.some! octal!)) (..should_pass! "" (\\parser.some! octal!))))) (do [! random.monad] - [.let [octal (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat)] + [.let [octal (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat)] first octal second octal third octal] (_.coverage [\\parser.exactly \\parser.exactly!] - (and (..should_pass (format first second) (\\parser.exactly 2 \\parser.octal)) - (..should_fail (format first second third) (\\parser.exactly 2 \\parser.octal)) - (..should_fail (format first) (\\parser.exactly 2 \\parser.octal)) + (and (..should_pass (\\format.format first second) (\\parser.exactly 2 \\parser.octal)) + (..should_fail (\\format.format first second third) (\\parser.exactly 2 \\parser.octal)) + (..should_fail (\\format.format first) (\\parser.exactly 2 \\parser.octal)) - (..should_pass! (format first second) (\\parser.exactly! 2 octal!)) - (..should_fail (format first second third) (\\parser.exactly! 2 octal!)) - (..should_fail (format first) (\\parser.exactly! 2 octal!))))) + (..should_pass! (\\format.format first second) (\\parser.exactly! 2 octal!)) + (..should_fail (\\format.format first second third) (\\parser.exactly! 2 octal!)) + (..should_fail (\\format.format first) (\\parser.exactly! 2 octal!))))) (do [! random.monad] - [.let [octal (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat)] + [.let [octal (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat)] first octal second octal third octal] (_.coverage [\\parser.at_most \\parser.at_most!] - (and (..should_pass (format first second) (\\parser.at_most 2 \\parser.octal)) - (..should_pass (format first) (\\parser.at_most 2 \\parser.octal)) - (..should_fail (format first second third) (\\parser.at_most 2 \\parser.octal)) + (and (..should_pass (\\format.format first second) (\\parser.at_most 2 \\parser.octal)) + (..should_pass (\\format.format first) (\\parser.at_most 2 \\parser.octal)) + (..should_fail (\\format.format first second third) (\\parser.at_most 2 \\parser.octal)) - (..should_pass! (format first second) (\\parser.at_most! 2 octal!)) - (..should_pass! (format first) (\\parser.at_most! 2 octal!)) - (..should_fail (format first second third) (\\parser.at_most! 2 octal!))))) + (..should_pass! (\\format.format first second) (\\parser.at_most! 2 octal!)) + (..should_pass! (\\format.format first) (\\parser.at_most! 2 octal!)) + (..should_fail (\\format.format first second third) (\\parser.at_most! 2 octal!))))) (do [! random.monad] - [.let [octal (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat)] + [.let [octal (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat)] first octal second octal third octal] (_.coverage [\\parser.at_least \\parser.at_least!] - (and (..should_pass (format first second) (\\parser.at_least 2 \\parser.octal)) - (..should_pass (format first second third) (\\parser.at_least 2 \\parser.octal)) - (..should_fail (format first) (\\parser.at_least 2 \\parser.octal)) + (and (..should_pass (\\format.format first second) (\\parser.at_least 2 \\parser.octal)) + (..should_pass (\\format.format first second third) (\\parser.at_least 2 \\parser.octal)) + (..should_fail (\\format.format first) (\\parser.at_least 2 \\parser.octal)) - (..should_pass! (format first second) (\\parser.at_least! 2 octal!)) - (..should_pass! (format first second third) (\\parser.at_least! 2 octal!)) - (..should_fail (format first) (\\parser.at_least! 2 octal!))))) + (..should_pass! (\\format.format first second) (\\parser.at_least! 2 octal!)) + (..should_pass! (\\format.format first second third) (\\parser.at_least! 2 octal!)) + (..should_fail (\\format.format first) (\\parser.at_least! 2 octal!))))) (do [! random.monad] - [.let [octal (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat)] + [.let [octal (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat)] first octal second octal third octal] (_.coverage [\\parser.between \\parser.between!] - (and (..should_pass (format first second) (\\parser.between 2 1 \\parser.octal)) - (..should_pass (format first second third) (\\parser.between 2 1 \\parser.octal)) - (..should_fail (format first) (\\parser.between 2 1 \\parser.octal)) + (and (..should_pass (\\format.format first second) (\\parser.between 2 1 \\parser.octal)) + (..should_pass (\\format.format first second third) (\\parser.between 2 1 \\parser.octal)) + (..should_fail (\\format.format first) (\\parser.between 2 1 \\parser.octal)) - (..should_pass! (format first second) (\\parser.between! 2 1 octal!)) - (..should_pass! (format first second third) (\\parser.between! 2 1 octal!)) - (..should_fail (format first) (\\parser.between! 2 1 octal!))))) + (..should_pass! (\\format.format first second) (\\parser.between! 2 1 octal!)) + (..should_pass! (\\format.format first second third) (\\parser.between! 2 1 octal!)) + (..should_fail (\\format.format first) (\\parser.between! 2 1 octal!))))) ))) (def: \\parser @@ -359,7 +524,7 @@ (do [! random.monad] [dummy (random.unicode 1)] (_.coverage [\\parser.unconsumed_input] - (|> (format dummy dummy) + (|> (\\format.format dummy dummy) (\\parser.result \\parser.any) (!expect (^.multi {try.#Failure error} (exception.match? \\parser.unconsumed_input error)))))) @@ -376,7 +541,7 @@ (do [! random.monad] [left (random.unicode 1) right (random.unicode 1) - .let [input (format left right)]] + .let [input (\\format.format left right)]] (_.coverage [\\parser.remaining] (|> input (\\parser.result (do <>.monad @@ -393,7 +558,7 @@ expected (random.only (|>> (/#= right) not) (random.unicode 1))] (_.coverage [\\parser.enclosed] - (|> (format left expected right) + (|> (\\format.format left expected right) (\\parser.result (\\parser.enclosed [left right] (\\parser.this expected))) (!expect {try.#Success _})))) (do [! random.monad] @@ -406,10 +571,10 @@ (\\parser.this output))) (!expect {try.#Success _})))) (do [! random.monad] - [expected (at ! each (|>> (n.% 8) (at n.octal encoded)) random.nat)] + [expected (at ! each (|>> (nat.% 8) (at nat.octal encoded)) random.nat)] (_.coverage [\\parser.then] (|> (list (code.text expected)) - (<c>.result (\\parser.then \\parser.octal <c>.text)) + (<code>.result (\\parser.then \\parser.octal <code>.text)) (!expect (^.multi {try.#Success actual} (/#= expected actual)))))) (do [! random.monad] @@ -440,13 +605,13 @@ .let [upper! (\\parser.one_of! "ABCDEFGHIJKLMNOPQRSTUVWXYZ") lower! (\\parser.one_of! "abcdefghijklmnopqrstuvwxyz")]] (_.coverage [\\parser.and \\parser.and!] - (and (..should_pass (format upper lower) (\\parser.and \\parser.upper \\parser.lower)) - (..should_fail (format (/.of_char invalid) lower) (\\parser.and \\parser.upper \\parser.lower)) - (..should_fail (format upper (/.of_char invalid)) (\\parser.and \\parser.upper \\parser.lower)) + (and (..should_pass (\\format.format upper lower) (\\parser.and \\parser.upper \\parser.lower)) + (..should_fail (\\format.format (/.of_char invalid) lower) (\\parser.and \\parser.upper \\parser.lower)) + (..should_fail (\\format.format upper (/.of_char invalid)) (\\parser.and \\parser.upper \\parser.lower)) - (..should_pass! (format upper lower) (\\parser.and! upper! lower!)) - (..should_fail (format (/.of_char invalid) lower) (\\parser.and! upper! lower!)) - (..should_fail (format upper (/.of_char invalid)) (\\parser.and! upper! lower!))))) + (..should_pass! (\\format.format upper lower) (\\parser.and! upper! lower!)) + (..should_fail (\\format.format (/.of_char invalid) lower) (\\parser.and! upper! lower!)) + (..should_fail (\\format.format upper (/.of_char invalid)) (\\parser.and! upper! lower!))))) (do [! random.monad] [expected (random.unicode 1) invalid (random.unicode 1)] @@ -462,19 +627,19 @@ (def: bounded_size (random.Random Nat) (|> random.nat - (at random.monad each (|>> (n.% 20) (n.+ 1))))) + (at random.monad each (|>> (nat.% 20) (nat.+ 1))))) (def: size Test (do [! random.monad] - [size (at ! each (n.% 10) random.nat) + [size (at ! each (nat.% 10) random.nat) sample (random.unicode size)] (all _.and (_.coverage [/.size] - (n.= size (/.size sample))) + (nat.= size (/.size sample))) (_.coverage [/.empty?] (or (/.empty? sample) - (not (n.= 0 size))))))) + (not (nat.= 0 size))))))) (def: affix Test @@ -520,36 +685,36 @@ (_.coverage [/.index] (and (|> (/.index inner (at /.monoid composite inner outer)) (maybe.else fake_index) - (n.= 0)) + (nat.= 0)) (|> (/.index outer (at /.monoid composite inner outer)) (maybe.else fake_index) - (n.= 1)))) + (nat.= 1)))) (_.coverage [/.index_since] (let [full (at /.monoid composite inner outer)] (and (|> (/.index_since 0 inner full) (maybe.else fake_index) - (n.= 0)) + (nat.= 0)) (|> (/.index_since 1 inner full) (maybe.else fake_index) - (n.= fake_index)) + (nat.= fake_index)) (|> (/.index_since 0 outer full) (maybe.else fake_index) - (n.= 1)) + (nat.= 1)) (|> (/.index_since 1 outer full) (maybe.else fake_index) - (n.= 1)) + (nat.= 1)) (|> (/.index_since 2 outer full) (maybe.else fake_index) - (n.= fake_index))))) + (nat.= fake_index))))) (_.coverage [/.last_index] (let [full (all (at /.monoid composite) outer inner outer)] (and (|> (/.last_index inner full) (maybe.else fake_index) - (n.= 1)) + (nat.= 1)) (|> (/.last_index outer full) (maybe.else fake_index) - (n.= 2))))) + (nat.= 2))))) ))) (def: char @@ -574,16 +739,16 @@ (at /.equivalence = /.new_line /.line_feed)) ))) (do [! random.monad] - [size (at ! each (|>> (n.% 10) ++) random.nat) + [size (at ! each (|>> (nat.% 10) ++) random.nat) characters (random.set /.hash size (random.alphabetic 1)) .let [sample (|> characters set.list /.together)] - expected (at ! each (n.% size) random.nat)] + expected (at ! each (nat.% size) random.nat)] (_.coverage [/.char] (case (/.char expected sample) {.#Some char} (case (/.index (/.of_char char) sample) {.#Some actual} - (n.= expected actual) + (nat.= expected actual) _ false) @@ -606,7 +771,7 @@ (def: manipulation Test (do [! random.monad] - [size (at ! each (|>> (n.% 10) (n.+ 2)) random.nat) + [size (at ! each (|>> (nat.% 10) (nat.+ 2)) random.nat) characters (random.set /.hash size (random.alphabetic 1)) separator (random.only (|>> (set.member? characters) not) (random.alphabetic 1)) @@ -621,8 +786,8 @@ upper (random.upper_case 1)] (all _.and (_.coverage [/.together] - (n.= (set.size characters) - (/.size (/.together (set.list characters))))) + (nat.= (set.size characters) + (/.size (/.together (set.list characters))))) (_.coverage [/.interposed /.all_split_by] (and (|> (set.list characters) (/.interposed separator) @@ -727,7 +892,7 @@ #0))) (_.coverage [/.clip /.clip_since] (|> [(/.clip 0 sizeL sample) - (/.clip sizeL (n.- sizeL (/.size sample)) sample) + (/.clip sizeL (nat.- sizeL (/.size sample)) sample) (/.clip_since sizeL sample) (/.clip_since 0 sample)] (pipe.case @@ -746,7 +911,7 @@ .let [... The wider unicode charset includes control characters that ... can make text replacement work improperly. ... Because of that, I restrict the charset. - normal_char_gen (|> random.nat (at ! each (|>> (n.% 128) (n.max 1))))] + normal_char_gen (|> random.nat (at ! each (|>> (nat.% 128) (nat.max 1))))] sep1 (random.text normal_char_gen 1) sep2 (random.text normal_char_gen 1) .let [part_gen (|> (random.text normal_char_gen sizeP) @@ -761,10 +926,10 @@ /buffer.test /encoding.test - /format.test /regex.test /escape.test /unicode.test ..\\parser + ..\\format ))) diff --git a/stdlib/source/test/lux/data/text/buffer.lux b/stdlib/source/test/lux/data/text/buffer.lux index eb980389d..6c1531b66 100644 --- a/stdlib/source/test/lux/data/text/buffer.lux +++ b/stdlib/source/test/lux/data/text/buffer.lux @@ -6,7 +6,7 @@ [monad (.only do)]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/lux/data/text/escape.lux b/stdlib/source/test/lux/data/text/escape.lux index c6c961dfe..a583c2b6e 100644 --- a/stdlib/source/test/lux/data/text/escape.lux +++ b/stdlib/source/test/lux/data/text/escape.lux @@ -14,7 +14,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.only Char) (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" set (.only Set)]]] [macro diff --git a/stdlib/source/test/lux/data/text/format.lux b/stdlib/source/test/lux/data/text/format.lux deleted file mode 100644 index f8669cb3e..000000000 --- a/stdlib/source/test/lux/data/text/format.lux +++ /dev/null @@ -1,186 +0,0 @@ -(.using - [library - [lux (.except) - ["_" test (.only Test)] - [abstract - [monad (.only do)] - [equivalence (.only Equivalence)] - [functor - [\\specification - ["$[0]" contravariant]]]] - [control - ["[0]" try]] - [data - ["[0]" text (.open: "[1]#[0]" equivalence)] - ["[0]" bit] - [format - ["[0]" xml] - ["[0]" json]] - [collection - ["[0]" list (.open: "[1]#[0]" functor)]]] - ["[0]" time (.only) - ["[0]" day] - ["[0]" month] - ["[0]" instant] - ["[0]" duration] - ["[0]" date]] - [math - ["[0]" random (.only Random) (.open: "[1]#[0]" monad)] - ["[0]" modulus] - ["[0]" modular] - [number - ["[0]" nat] - ["[0]" int] - ["[0]" rev] - ["[0]" frac] - ["[0]" ratio]]] - [macro - ["[0]" code]] - [meta - ["[0]" location] - ["[0]" symbol]] - ["[0]" type]]] - ["$[0]" /// - [format - ["[1][0]" xml] - ["[1][0]" json]] - [// - ["[1][0]" type] - [macro - ["[1][0]" code]] - [meta - ["[1][0]" symbol]]]] - [\\library - ["[0]" /]]) - -(def: (equivalence example) - (All (_ a) (-> a (Equivalence (/.Format a)))) - (implementation - (def: (= reference subject) - (text#= (reference example) (subject example))))) - -(def: random_contravariant - (Random (Ex (_ a) [(/.Format a) - (Random a)])) - (all random.either - (random#in [/.bit random.bit]) - (random#in [/.nat random.nat]) - (random#in [/.int random.int]) - (random#in [/.rev random.rev]) - (random#in [/.frac random.frac]) - )) - -(def: codec - Test - (`` (all _.and - (~~ (with_template [<format> <codec> <random>] - [(do random.monad - [sample <random>] - (_.coverage [<format>] - (text#= (at <codec> encoded sample) - (<format> sample))))] - - [/.bit bit.codec random.bit] - [/.nat nat.decimal random.nat] - [/.int int.decimal random.int] - [/.rev rev.decimal random.rev] - [/.frac frac.decimal random.frac] - [/.ratio ratio.codec random.ratio] - [/.symbol symbol.codec ($///symbol.random 5 5)] - [/.xml xml.codec $///xml.random] - [/.json json.codec $///json.random] - [/.day day.codec random.day] - [/.month month.codec random.month] - [/.instant instant.codec random.instant] - [/.duration duration.codec random.duration] - [/.date date.codec random.date] - [/.time time.codec random.time] - - [/.nat_2 nat.binary random.nat] - [/.nat_8 nat.octal random.nat] - [/.nat_10 nat.decimal random.nat] - [/.nat_16 nat.hex random.nat] - - [/.int_2 int.binary random.int] - [/.int_8 int.octal random.int] - [/.int_10 int.decimal random.int] - [/.int_16 int.hex random.int] - - [/.rev_2 rev.binary random.rev] - [/.rev_8 rev.octal random.rev] - [/.rev_10 rev.decimal random.rev] - [/.rev_16 rev.hex random.rev] - - [/.frac_2 frac.binary random.frac] - [/.frac_8 frac.octal random.frac] - [/.frac_10 frac.decimal random.frac] - [/.frac_16 frac.hex random.frac] - )) - ))) - -(def: .public test - Test - (<| (_.covering /._) - (_.for [/.Format]) - (`` (all _.and - (_.for [/.functor] - (do random.monad - [[format random] ..random_contravariant - example random] - ($contravariant.spec (..equivalence example) - format - /.functor))) - - (do random.monad - [left (random.unicode 5) - mid (random.unicode 5) - right (random.unicode 5)] - (_.coverage [/.format] - (text#= (/.format left mid right) - (all "lux text concat" left mid right)))) - ..codec - (~~ (with_template [<format> <alias> <random>] - [(do random.monad - [sample <random>] - (_.coverage [<format>] - (text#= (<alias> sample) - (<format> sample))))] - - [/.text text.format (random.unicode 5)] - [/.code code.format $///code.random] - [/.type type.format ($///type.random 0)] - [/.location location.format - (all random.and - (random.unicode 5) - random.nat - random.nat)] - )) - (do random.monad - [members (random.list 5 random.nat)] - (_.coverage [/.list] - (text#= (/.list /.nat members) - (|> members - (list#each /.nat) - (text.interposed " ") - list - (/.list (|>>)))))) - (do random.monad - [sample (random.maybe random.nat)] - (_.coverage [/.maybe] - (case sample - {.#None} - true - - {.#Some value} - (text.contains? (/.nat value) - (/.maybe /.nat sample))))) - (do [! random.monad] - [modulus (random.one (|>> modulus.modulus - try.maybe) - random.int) - sample (at ! each (modular.modular modulus) - random.int)] - (_.coverage [/.mod] - (text#= (at (modular.codec modulus) encoded sample) - (/.mod sample)))) - )))) diff --git a/stdlib/source/test/lux/data/text/regex.lux b/stdlib/source/test/lux/data/text/regex.lux index 0f419d22a..a31b6247b 100644 --- a/stdlib/source/test/lux/data/text/regex.lux +++ b/stdlib/source/test/lux/data/text/regex.lux @@ -11,7 +11,7 @@ ["<[0]>" code]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] ["<[1]>" \\parser (.only Parser)]]] ["[0]" macro (.only) [syntax (.only syntax)] diff --git a/stdlib/source/test/lux/debug.lux b/stdlib/source/test/lux/debug.lux index 1d88519e0..d0292ab1a 100644 --- a/stdlib/source/test/lux/debug.lux +++ b/stdlib/source/test/lux/debug.lux @@ -12,7 +12,7 @@ ["<[0]>" code]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)]] [format diff --git a/stdlib/source/test/lux/documentation.lux b/stdlib/source/test/lux/documentation.lux index 5d74472a2..9c4f1fc2a 100644 --- a/stdlib/source/test/lux/documentation.lux +++ b/stdlib/source/test/lux/documentation.lux @@ -10,7 +10,7 @@ ["<[0]>" code]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format]] + ["%" \\format]] [format ["md" markdown]]] ["[0]" macro (.only) diff --git a/stdlib/source/test/lux/extension.lux b/stdlib/source/test/lux/extension.lux index 0f0ae3764..70984d45e 100644 --- a/stdlib/source/test/lux/extension.lux +++ b/stdlib/source/test/lux/extension.lux @@ -24,15 +24,14 @@ ["<[0]>" code] ["<[0]>" synthesis]]] [data - ["[0]" binary] ["[0]" product] + ["[0]" binary (.only) + ["[1]F" \\format]] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" sequence] - ["[0]" list (.open: "[1]#[0]" functor)]] - [format - ["[0]F" binary]]] + ["[0]" list (.open: "[1]#[0]" functor)]]] [macro ["[0]" template]] [math diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux index 1b96680d3..4b924b6a6 100644 --- a/stdlib/source/test/lux/ffi.jvm.lux +++ b/stdlib/source/test/lux/ffi.jvm.lux @@ -17,7 +17,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" array (.only Array)]]] ["[0]" macro (.only) diff --git a/stdlib/source/test/lux/ffi.old.lux b/stdlib/source/test/lux/ffi.old.lux index 3c00f11c5..542c03d34 100644 --- a/stdlib/source/test/lux/ffi.old.lux +++ b/stdlib/source/test/lux/ffi.old.lux @@ -9,7 +9,7 @@ ["[0]" pipe]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [macro ["[0]" template]] [math diff --git a/stdlib/source/test/lux/ffi/export.jvm.lux b/stdlib/source/test/lux/ffi/export.jvm.lux index d79489e9b..c3fd80bea 100644 --- a/stdlib/source/test/lux/ffi/export.jvm.lux +++ b/stdlib/source/test/lux/ffi/export.jvm.lux @@ -10,7 +10,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format]]] + ["%" \\format]]] [macro ["[0]" code] ["[0]" template]] diff --git a/stdlib/source/test/lux/macro.lux b/stdlib/source/test/lux/macro.lux index 0a16b1491..f43fb3d7d 100644 --- a/stdlib/source/test/lux/macro.lux +++ b/stdlib/source/test/lux/macro.lux @@ -12,7 +12,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list]]] [macro diff --git a/stdlib/source/test/lux/macro/local.lux b/stdlib/source/test/lux/macro/local.lux index bb03574a1..5c55670e7 100644 --- a/stdlib/source/test/lux/macro/local.lux +++ b/stdlib/source/test/lux/macro/local.lux @@ -12,7 +12,7 @@ ["<[0]>" code]]] [data [text - ["%" format]] + ["%" \\format]] [collection ["[0]" list] [dictionary diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux index 59376f8bf..bd253b16c 100644 --- a/stdlib/source/test/lux/meta.lux +++ b/stdlib/source/test/lux/meta.lux @@ -17,7 +17,7 @@ ["[0]" product] ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor monoid)] ["[0]" set]]] diff --git a/stdlib/source/test/lux/static.lux b/stdlib/source/test/lux/static.lux index 016fccd9e..acaac3bda 100644 --- a/stdlib/source/test/lux/static.lux +++ b/stdlib/source/test/lux/static.lux @@ -6,7 +6,7 @@ ["[0]" meta] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" mix)]]] [macro diff --git a/stdlib/source/test/lux/target/js.lux b/stdlib/source/test/lux/target/js.lux index bff4822e6..dfdc02ab0 100644 --- a/stdlib/source/test/lux/target/js.lux +++ b/stdlib/source/test/lux/target/js.lux @@ -14,7 +14,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.only \n) (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)]]] [macro diff --git a/stdlib/source/test/lux/target/jvm.lux b/stdlib/source/test/lux/target/jvm.lux index 94b88c41f..3b9ad317c 100644 --- a/stdlib/source/test/lux/target/jvm.lux +++ b/stdlib/source/test/lux/target/jvm.lux @@ -15,9 +15,9 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] - ["[0]" format - ["[1]" binary]] + ["%" \\format (.only format)]] + ["[0]" binary + ["[1]" \\format]] [collection ["[0]" array] ["[0]" dictionary] @@ -138,7 +138,7 @@ [_ bytecode] /.areturn)})) (sequence.sequence)) - .let [bytecode (format.result /class.writer class) + .let [bytecode (binary.result /class.writer class) loader (/loader.memory (/loader.new_library []))] _ (/loader.define class_name bytecode loader) class (io.run! (/loader.load class_name loader)) @@ -909,7 +909,7 @@ /.areturn)})) (sequence.sequence)) try.trusted - (format.result /class.writer)) + (binary.result /class.writer)) loader (/loader.memory (/loader.new_library []))]] (_.property "PUTSTATIC & PUTFIELD & GETFIELD & GETSTATIC" (case (do try.monad @@ -1378,7 +1378,7 @@ _ (the #wrap primitive)] /.areturn)})) (sequence.sequence)) - .let [bytecode (format.result /class.writer class) + .let [bytecode (binary.result /class.writer class) loader (/loader.memory (/loader.new_library []))] _ (/loader.define class_name bytecode loader) class (io.run! (/loader.load class_name loader)) @@ -1660,7 +1660,7 @@ interface_method #0 method::type (list) {.#None})) (sequence.sequence)) try.trusted - (format.result /class.writer)) + (binary.result /class.writer)) abstract_bytecode (|> (/class.class /version.v6_0 (all /modifier#composite /class.public /class.abstract) (/name.internal abstract_class) {.#None} @@ -1681,7 +1681,7 @@ abstract_method #0 method::type (list) {.#None})) (sequence.sequence)) try.trusted - (format.result /class.writer)) + (binary.result /class.writer)) invoke (is (-> (Type Class) Text (Bytecode Any)) (function (_ class method) (do /.monad @@ -1729,7 +1729,7 @@ /.areturn)})) (sequence.sequence)) try.trusted - (format.result /class.writer)) + (binary.result /class.writer)) loader (/loader.memory (/loader.new_library []))]] (_.property "Class & interface inheritance" (case (do try.monad diff --git a/stdlib/source/test/lux/target/lua.lux b/stdlib/source/test/lux/target/lua.lux index fc3c1ac13..e8c1057c5 100644 --- a/stdlib/source/test/lux/target/lua.lux +++ b/stdlib/source/test/lux/target/lua.lux @@ -17,7 +17,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.only \n) (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)]]] [macro diff --git a/stdlib/source/test/lux/target/python.lux b/stdlib/source/test/lux/target/python.lux index c49cc117f..b31a398fc 100644 --- a/stdlib/source/test/lux/target/python.lux +++ b/stdlib/source/test/lux/target/python.lux @@ -17,7 +17,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)]]] [macro diff --git a/stdlib/source/test/lux/target/ruby.lux b/stdlib/source/test/lux/target/ruby.lux index ab5a871ab..011720095 100644 --- a/stdlib/source/test/lux/target/ruby.lux +++ b/stdlib/source/test/lux/target/ruby.lux @@ -16,7 +16,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor)] ["[0]" set]]] diff --git a/stdlib/source/test/lux/test.lux b/stdlib/source/test/lux/test.lux index c8c3d1492..b7d59da1e 100644 --- a/stdlib/source/test/lux/test.lux +++ b/stdlib/source/test/lux/test.lux @@ -11,7 +11,7 @@ ["[0]" atom (.only Atom)]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format]] + ["%" \\format]] [collection ["[0]" list] ["[0]" set]]] diff --git a/stdlib/source/test/lux/time.lux b/stdlib/source/test/lux/time.lux index 4cb18d5df..8962c7adb 100644 --- a/stdlib/source/test/lux/time.lux +++ b/stdlib/source/test/lux/time.lux @@ -15,7 +15,7 @@ ["[0]" exception]] [data ["[0]" text (.only) - ["%" format (.only format)] + ["%" \\format (.only format)] ["<[1]>" \\parser]]] [math ["[0]" random] diff --git a/stdlib/source/test/lux/time/date.lux b/stdlib/source/test/lux/time/date.lux index a95e4c10f..958438f13 100644 --- a/stdlib/source/test/lux/time/date.lux +++ b/stdlib/source/test/lux/time/date.lux @@ -14,7 +14,7 @@ ["[0]" exception]] [data ["[0]" text - ["%" format (.only format)] + ["%" \\format (.only format)] ["<[1]>" \\parser]]] [math ["[0]" random (.only Random)] diff --git a/stdlib/source/test/lux/time/year.lux b/stdlib/source/test/lux/time/year.lux index ef4bebaa3..cb2be3918 100644 --- a/stdlib/source/test/lux/time/year.lux +++ b/stdlib/source/test/lux/time/year.lux @@ -14,7 +14,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] [text - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/complex.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/complex.lux index 0943b9cdf..44e430c0e 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/complex.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/complex.lux @@ -10,7 +10,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random (.only Random) (.open: "[1]#[0]" monad)] [number diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux index 14ed1bef3..d308e446c 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/coverage.lux @@ -15,7 +15,7 @@ ["[0]" product] ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format]] + ["%" \\format]] [collection ["[0]" set] ["[0]" dictionary] diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux index 01cb6c5bc..33e7c009e 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/case.lux @@ -10,7 +10,7 @@ [data ["[0]" product] ["[0]" text (.only) - ["%" format]]] + ["%" \\format]]] ["[0]" macro (.only) ["[0]" code]] [math diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux index aecf1d14b..61c790517 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/complex.lux @@ -13,7 +13,7 @@ ["[0]" product] ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" monad monoid)] ["[0]" set]]] diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux index 88ce51858..23d910b37 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/analysis/function.lux @@ -11,7 +11,7 @@ [data ["[0]" product] ["[0]" text (.only) - ["%" format]] + ["%" \\format]] [collection ["[0]" list]]] ["[0]" macro (.only) diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux index ca35902cd..745b50cf8 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux @@ -14,7 +14,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" dictionary] ["[0]" list (.open: "[1]#[0]" mix)]]] diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux index 4a79735c7..804c115d4 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/case.lux @@ -10,7 +10,7 @@ [data ["[0]" sum] ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [number ["n" nat] ["[0]" int] diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux index 9dae4cabc..8f59b1714 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/function.lux @@ -8,7 +8,7 @@ [data ["[0]" product] ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [number ["n" nat]] [collection diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux index 8d284b15f..2d794cf3f 100644 --- a/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux +++ b/stdlib/source/test/lux/tool/compiler/language/lux/phase/synthesis/variable.lux @@ -10,7 +10,7 @@ [data ["[0]" product] ["[0]" text - ["%" format (.only format)]] + ["%" \\format (.only format)]] [number ["n" nat]] [collection diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive.lux b/stdlib/source/test/lux/tool/compiler/meta/archive.lux index 359446987..9153a8f3c 100644 --- a/stdlib/source/test/lux/tool/compiler/meta/archive.lux +++ b/stdlib/source/test/lux/tool/compiler/meta/archive.lux @@ -10,7 +10,7 @@ [data ["[0]" product] ["[0]" text (.only) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list] ["[0]" set (.open: "[1]#[0]" equivalence)] diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive/module/descriptor.lux b/stdlib/source/test/lux/tool/compiler/meta/archive/module/descriptor.lux index 1b6e2af50..cc9093286 100644 --- a/stdlib/source/test/lux/tool/compiler/meta/archive/module/descriptor.lux +++ b/stdlib/source/test/lux/tool/compiler/meta/archive/module/descriptor.lux @@ -12,8 +12,8 @@ ["<[0]>" binary]]] [data ["[0]" text (.open: "[1]#[0]" equivalence)] - [format - ["[0]" binary]]] + ["[0]" binary + ["[1]" \\format]]] [math ["[0]" random (.only Random) (.open: "[1]#[0]" monad)]]]] [\\library diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux b/stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux index ce5dd5566..e36561063 100644 --- a/stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux +++ b/stdlib/source/test/lux/tool/compiler/meta/archive/module/document.lux @@ -11,8 +11,8 @@ [parser ["<[0]>" binary]]] [data - [format - ["[0]F" binary]]] + ["[0]" binary + ["[1]F" \\format]]] [math ["[0]" random] [number diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive/registry.lux b/stdlib/source/test/lux/tool/compiler/meta/archive/registry.lux index ec53d9f99..a3dfe0677 100644 --- a/stdlib/source/test/lux/tool/compiler/meta/archive/registry.lux +++ b/stdlib/source/test/lux/tool/compiler/meta/archive/registry.lux @@ -12,12 +12,12 @@ [data ["[0]" product] ["[0]" text] + ["[0]" binary + ["[1]" \\format]] [collection ["[0]" sequence (.only Sequence)] ["[0]" set (.only Set)] - ["[0]" list (.open: "[1]#[0]" mix functor)]] - [format - ["[0]" binary]]] + ["[0]" list (.open: "[1]#[0]" mix functor)]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive/signature.lux b/stdlib/source/test/lux/tool/compiler/meta/archive/signature.lux index f127d86e5..15db5b167 100644 --- a/stdlib/source/test/lux/tool/compiler/meta/archive/signature.lux +++ b/stdlib/source/test/lux/tool/compiler/meta/archive/signature.lux @@ -13,8 +13,8 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence)] - [format - ["[0]F" binary]]] + ["[0]" binary + ["[1]F" \\format]]] [math ["[0]" random (.only Random)]]]] [\\library diff --git a/stdlib/source/test/lux/tool/compiler/meta/cache/purge.lux b/stdlib/source/test/lux/tool/compiler/meta/cache/purge.lux index 209f97b16..47582d841 100644 --- a/stdlib/source/test/lux/tool/compiler/meta/cache/purge.lux +++ b/stdlib/source/test/lux/tool/compiler/meta/cache/purge.lux @@ -11,7 +11,7 @@ ["[0]" async]]] [data ["[0]" text (.only) - ["%" format]] + ["%" \\format]] ["[0]" binary ["$[1]" \\test]] [collection diff --git a/stdlib/source/test/lux/tool/compiler/meta/export.lux b/stdlib/source/test/lux/tool/compiler/meta/export.lux index c8e9fcb06..1fb6d3a2d 100644 --- a/stdlib/source/test/lux/tool/compiler/meta/export.lux +++ b/stdlib/source/test/lux/tool/compiler/meta/export.lux @@ -18,7 +18,7 @@ [format ["[0]" tar]] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] [collection diff --git a/stdlib/source/test/lux/tool/compiler/meta/import.lux b/stdlib/source/test/lux/tool/compiler/meta/import.lux index 552be6616..c37686e03 100644 --- a/stdlib/source/test/lux/tool/compiler/meta/import.lux +++ b/stdlib/source/test/lux/tool/compiler/meta/import.lux @@ -14,13 +14,13 @@ ["<[0]>" binary]]] [data ["[0]" product] - ["[0]" binary (.only Binary) (.open: "[1]#[0]" equivalence)] ["[0]" bit (.open: "[1]#[0]" equivalence)] + ["[0]" binary (.only Binary) (.open: "[1]#[0]" equivalence) + ["[0]" \\format]] ["[0]" format - ["[0]" tar (.only Tar)] - ["[1]" binary]] + ["[0]" tar (.only Tar)]] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] [collection @@ -67,35 +67,35 @@ content/1 (tar.content content/1)] (in (|> (sequence.sequence {tar.#Normal [file/0 now export.mode export.ownership content/0]} {tar.#Normal [file/1 now export.mode export.ownership content/1]}) - (format.result tar.writer)))) + (\\format.result tar.writer)))) (try.else (binary.empty 0))) library_content/0 (|> (do try.monad [file/0 (tar.path file/0) content/0 (tar.content content/0)] (in (|> (sequence.sequence {tar.#Normal [file/0 now export.mode export.ownership content/0]}) - (format.result tar.writer)))) + (\\format.result tar.writer)))) (try.else (binary.empty 0))) library_content/1 (|> (do try.monad [file/1 (tar.path file/1) content/1 (tar.content content/1)] (in (|> (sequence.sequence {tar.#Normal [file/1 now export.mode export.ownership content/1]}) - (format.result tar.writer)))) + (\\format.result tar.writer)))) (try.else (binary.empty 0))) library_content/-0 (|> (do try.monad [file/0 (tar.path file/0) content/0 (tar.content content/0)] (in (|> (sequence.sequence {tar.#Contiguous [file/0 now export.mode export.ownership content/0]}) - (format.result tar.writer)))) + (\\format.result tar.writer)))) (try.else (binary.empty 0))) library_content/-1 (|> (do try.monad [file/0 (tar.path file/0)] (in (|> (sequence.sequence {tar.#Symbolic_Link file/0}) - (format.result tar.writer)))) + (\\format.result tar.writer)))) (try.else (binary.empty 0))) library_content/-2 (|> (do try.monad [file/0 (tar.path file/0)] (in (|> (sequence.sequence {tar.#Directory file/0}) - (format.result tar.writer)))) + (\\format.result tar.writer)))) (try.else (binary.empty 0))) imported? (is (-> /.Import Bit) (function (_ it) diff --git a/stdlib/source/test/lux/tool/compiler/phase.lux b/stdlib/source/test/lux/tool/compiler/phase.lux index b5d392112..1692ffc4d 100644 --- a/stdlib/source/test/lux/tool/compiler/phase.lux +++ b/stdlib/source/test/lux/tool/compiler/phase.lux @@ -13,7 +13,7 @@ ["[0]" exception (.only exception:)]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random] [number diff --git a/stdlib/source/test/lux/tool/compiler/reference.lux b/stdlib/source/test/lux/tool/compiler/reference.lux index 1991765de..3fcd3800d 100644 --- a/stdlib/source/test/lux/tool/compiler/reference.lux +++ b/stdlib/source/test/lux/tool/compiler/reference.lux @@ -9,7 +9,7 @@ ["$[0]" hash]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format]]] + ["%" \\format]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/lux/tool/compiler/version.lux b/stdlib/source/test/lux/tool/compiler/version.lux index 88cb62e09..d441ef9d1 100644 --- a/stdlib/source/test/lux/tool/compiler/version.lux +++ b/stdlib/source/test/lux/tool/compiler/version.lux @@ -7,7 +7,7 @@ [data ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/lux/type/check.lux b/stdlib/source/test/lux/type/check.lux index fcabf6d74..9f3c993dc 100644 --- a/stdlib/source/test/lux/type/check.lux +++ b/stdlib/source/test/lux/type/check.lux @@ -18,7 +18,7 @@ ["[0]" bit (.open: "[1]#[0]" equivalence)] ["[0]" product] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list (.open: "[1]#[0]" functor monoid)] ["[0]" set]]] diff --git a/stdlib/source/test/lux/type/dynamic.lux b/stdlib/source/test/lux/type/dynamic.lux index cb5931ff7..756545b61 100644 --- a/stdlib/source/test/lux/type/dynamic.lux +++ b/stdlib/source/test/lux/type/dynamic.lux @@ -9,7 +9,7 @@ ["[0]" exception]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/lux/type/quotient.lux b/stdlib/source/test/lux/type/quotient.lux index 7c4f03923..1653fcb36 100644 --- a/stdlib/source/test/lux/type/quotient.lux +++ b/stdlib/source/test/lux/type/quotient.lux @@ -8,7 +8,7 @@ ["$[0]" equivalence]]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random (.only Random)] [number diff --git a/stdlib/source/test/lux/type/resource.lux b/stdlib/source/test/lux/type/resource.lux index 2182c600e..1c2547ad9 100644 --- a/stdlib/source/test/lux/type/resource.lux +++ b/stdlib/source/test/lux/type/resource.lux @@ -17,7 +17,7 @@ [data ["[0]" identity (.only Identity)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] ["[0]" macro (.only) [syntax (.only syntax)] ["[0]" code]] diff --git a/stdlib/source/test/lux/world/console.lux b/stdlib/source/test/lux/world/console.lux index 068a67aa7..cd3ac7f1d 100644 --- a/stdlib/source/test/lux/world/console.lux +++ b/stdlib/source/test/lux/world/console.lux @@ -10,7 +10,7 @@ ["[0]" exception (.only exception:)]] [data ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]]] + ["%" \\format (.only format)]]] [math ["[0]" random]]]] [\\library diff --git a/stdlib/source/test/lux/world/file/watch.lux b/stdlib/source/test/lux/world/file/watch.lux index b4d090cbb..2a2053e77 100644 --- a/stdlib/source/test/lux/world/file/watch.lux +++ b/stdlib/source/test/lux/world/file/watch.lux @@ -13,7 +13,7 @@ [data ["[0]" binary (.only Binary) (.open: "[1]#[0]" equivalence)] ["[0]" text (.open: "[1]#[0]" equivalence) - ["%" format (.only format)]] + ["%" \\format (.only format)]] [collection ["[0]" list]]] [math diff --git a/stdlib/source/test/lux/world/net/http/client.lux b/stdlib/source/test/lux/world/net/http/client.lux index 4123cf264..1ccf30196 100644 --- a/stdlib/source/test/lux/world/net/http/client.lux +++ b/stdlib/source/test/lux/world/net/http/client.lux @@ -15,7 +15,7 @@ ["[0]" binary] ["[0]" product] ["[0]" text (.only) - ["%" format (.only format)] + ["%" \\format (.only format)] [encoding ["[0]" utf8]]] [collection |