diff options
Diffstat (limited to '')
20 files changed, 193 insertions, 189 deletions
diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux index a857eee53..9e5adf134 100644 --- a/stdlib/source/test/lux.lux +++ b/stdlib/source/test/lux.lux @@ -3,7 +3,6 @@ ["/" lux (.except) [program (.only program:)] ["_" test (.only Test)] - ["@" target] ["[0]" static] [abstract [monad (.only do)]] @@ -32,6 +31,7 @@ ["f" frac] ["[0]" i64]]] ["[0]" meta (.use "[1]#[0]" monad) + ["@" target] ["[0]" location (.use "[1]#[0]" equivalence)] ["[0]" code (.use "[1]#[0]" equivalence) ["<[1]>" \\parser]] @@ -61,14 +61,6 @@ ["[1][0]" ffi] ["[1][0]" extension] - ["[1][0]" target (.only) - (.,, (.for "{old}" (.,, (.these ["[1]/[0]" jvm])) - "JVM" (.,, (.these ["[1]/[0]" jvm])) - "JavaScript" (.,, (.these ["[1]/[0]" js])) - "Lua" (.,, (.these ["[1]/[0]" lua])) - "Python" (.,, (.these ["[1]/[0]" python])) - "Ruby" (.,, (.these ["[1]/[0]" ruby])) - (.,, (.these))))] ]))) (def for_bit @@ -986,7 +978,7 @@ ... (/.case [..#left expected_nat ..#right expected_int] ... (!pair 0 +0) ... true - + ... _ ... false)) (_.coverage [/.let] @@ -1229,14 +1221,6 @@ /ffi.test (,, (for @.old (,, (these)) (,, (these /extension.test)))) - - /target.test - (,, (for @.jvm (,, (these /target/jvm.test)) - @.old (,, (these /target/jvm.test)) - @.js (,, (these /target/js.test)) - @.lua (,, (these /target/lua.test)) - @.python (,, (these /target/python.test)) - @.ruby (,, (these /target/ruby.test)))) )))))) (program: args diff --git a/stdlib/source/test/lux/abstract/apply.lux b/stdlib/source/test/lux/abstract/apply.lux index b120b3484..416285780 100644 --- a/stdlib/source/test/lux/abstract/apply.lux +++ b/stdlib/source/test/lux/abstract/apply.lux @@ -1,6 +1,7 @@ (.require [library [lux (.except) + ["_" test (.only Test)] [abstract [monad (.only do)]] [control @@ -11,8 +12,7 @@ [math ["[0]" random] [number - ["n" nat]]] - ["_" test (.only Test)]]] + ["n" nat]]]]] [\\library ["[0]" / (.only Apply)]]) diff --git a/stdlib/source/test/lux/abstract/comonad.lux b/stdlib/source/test/lux/abstract/comonad.lux index 701ec93db..2d23f8d2c 100644 --- a/stdlib/source/test/lux/abstract/comonad.lux +++ b/stdlib/source/test/lux/abstract/comonad.lux @@ -1,6 +1,7 @@ (.require [library [lux (.except) + ["_" test (.only Test)] [abstract [monad (.only do)]] [data @@ -8,8 +9,7 @@ [math ["[0]" random] [number - ["n" nat]]] - ["_" test (.only Test)]]] + ["n" nat]]]]] [\\library ["[0]" /]]) diff --git a/stdlib/source/test/lux/abstract/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux index 96a7b3863..0ea65a1ca 100644 --- a/stdlib/source/test/lux/abstract/equivalence.lux +++ b/stdlib/source/test/lux/abstract/equivalence.lux @@ -2,7 +2,6 @@ [library [lux (.except Variant Record) ["_" test (.only Test)] - ["@" target] [abstract [monad (.only do)] [\\specification @@ -19,7 +18,9 @@ ["[0]" random (.only Random)] [number ["n" nat] - ["i" int]]]]] + ["i" int]]] + [meta + ["@" target]]]] ["[0]" \\polytypic] ["[0]" \\specification] [\\library diff --git a/stdlib/source/test/lux/abstract/functor.lux b/stdlib/source/test/lux/abstract/functor.lux index 548acee7a..4811f0f61 100644 --- a/stdlib/source/test/lux/abstract/functor.lux +++ b/stdlib/source/test/lux/abstract/functor.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["@" target] [abstract [monad (.only do)]] [control @@ -15,7 +14,9 @@ [math ["[0]" random] [number - ["n" nat]]]]] + ["n" nat]]] + [meta + ["@" target]]]] ["[0]" \\polytypic] [\\library ["[0]" / (.only Functor)]]) diff --git a/stdlib/source/test/lux/control/concurrency/async.lux b/stdlib/source/test/lux/control/concurrency/async.lux index c6b1eb864..e5d175486 100644 --- a/stdlib/source/test/lux/control/concurrency/async.lux +++ b/stdlib/source/test/lux/control/concurrency/async.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["@" target] [abstract [monad (.only do)] [\\specification @@ -11,15 +10,17 @@ ["$[0]" monad]]] [control ["[0]" io]] - [time - ["[0]" instant] - ["[0]" duration]] [math ["[0]" random] [number ["n" nat] ["i" int] - ["[0]" i64]]]]] + ["[0]" i64]]] + [meta + ["@" target]] + [time + ["[0]" instant] + ["[0]" duration]]]] [\\library ["[0]" / (.only) [// diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux index 4bae6dd3f..ac4bd63b3 100644 --- a/stdlib/source/test/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["@" target] [abstract ["[0]" monad (.only do)] ["[0]" enum]] @@ -25,6 +24,7 @@ ["n" nat] ["[0]" i64]]] [meta + ["@" target] [type ["[0]" refinement]]]]] [\\library diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux index 8eb35a192..bda5d1aba 100644 --- a/stdlib/source/test/lux/data/format/json.lux +++ b/stdlib/source/test/lux/data/format/json.lux @@ -2,7 +2,6 @@ [library [lux (.except Variant Record) ["_" test (.only Test)] - ["@" target] [abstract [codec (.except)] [monad (.only do)] @@ -32,19 +31,20 @@ [number ["n" nat] ["[0]" frac]]] - [time - ["[0]" date] - ["[0]" instant - ["[0]/[1]" \\test]] - ["[0]" duration - ["[0]/[1]" \\test]]] ["[0]" meta (.only) + ["@" target] ["[0]" code] ["[0]" macro (.only) ["^" pattern] ["[0]" syntax (.only syntax)]] [type - ["[0]" unit]]]]] + ["[0]" unit]]] + [time + ["[0]" date] + ["[0]" instant + ["[0]/[1]" \\test]] + ["[0]" duration + ["[0]/[1]" \\test]]]]] ["[0]" \\polytypic] ["[0]" \\parser] [\\library diff --git a/stdlib/source/test/lux/debug.lux b/stdlib/source/test/lux/debug.lux index 5214ede51..ccf72208a 100644 --- a/stdlib/source/test/lux/debug.lux +++ b/stdlib/source/test/lux/debug.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["@" target] [abstract [monad (.only do)]] [control @@ -21,6 +20,7 @@ [number [ratio (.only Ratio)]]] [meta + ["@" target] ["[0]" code (.only) ["<[1]>" \\parser]] ["[0]" macro (.only) diff --git a/stdlib/source/test/lux/extension.lux b/stdlib/source/test/lux/extension.lux index 1ee8a623a..662feb16a 100644 --- a/stdlib/source/test/lux/extension.lux +++ b/stdlib/source/test/lux/extension.lux @@ -1,21 +1,8 @@ (.`` (.`` (.require [library [lux (.except) + ["_" test (.only Test)] ["[0]" debug] - ["@" target (.only) - ["[0]" js] - ["[0]" python] - ["[0]" lua] - ["[0]" ruby] - ["[0]" php] - ["[0]" scheme] - ["[0]" jvm - (.,, (.for "JVM" (.,, (.these ["[1]" bytecode] - ["[0]" class] - ["[0]" version] - [encoding - ["[0]" name]])) - (.,, (.these))))]] [abstract ["[0]" monad (.only do)]] [control @@ -38,7 +25,21 @@ ["[0]" code ["<[1]>" \\parser]] [macro - ["[0]" template]]] + ["[0]" template]] + ["@" target (.only) + ["[0]" js] + ["[0]" python] + ["[0]" lua] + ["[0]" ruby] + ["[0]" php] + ["[0]" scheme] + ["[0]" jvm + (.,, (.for "JVM" (.,, (.these ["[1]" bytecode] + ["[0]" class] + ["[0]" version] + [encoding + ["[0]" name]])) + (.,, (.these))))]]] [tool [compiler ["[0]" phase] @@ -58,8 +59,7 @@ [generation (.,, (.for "JVM" (.,, (.these ["[0]" jvm ["[1]/[0]" runtime]])) - (.,, (.these))))]]]]]] - ["_" test (.only Test)]]] + (.,, (.these))))]]]]]]]] [\\library ["[0]" / (.only analysis synthesis generation declaration)]]))) diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux index 55ca861be..755312f27 100644 --- a/stdlib/source/test/lux/ffi.jvm.lux +++ b/stdlib/source/test/lux/ffi.jvm.lux @@ -30,10 +30,10 @@ ["<[1]>" \\parser]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" template]]] - [target - ["[0]" jvm - ["[1]" type (.use "[1]#[0]" equivalence)]]]]] + ["[0]" template]] + [target + ["[0]" jvm + ["[1]" type (.use "[1]#[0]" equivalence)]]]]]] [\\library ["[0]" /]] ["$[0]" / diff --git a/stdlib/source/test/lux/math/number/frac.lux b/stdlib/source/test/lux/math/number/frac.lux index bf89cddbd..cf3a973de 100644 --- a/stdlib/source/test/lux/math/number/frac.lux +++ b/stdlib/source/test/lux/math/number/frac.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["@" target] ["[0]" ffi] [abstract [monad (.only do)] @@ -17,6 +16,7 @@ [math ["[0]" random (.only Random)]] [meta + ["@" target] [macro ["[0]" template]]]]] [\\library diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux index ea47a6fc7..8ae07efb8 100644 --- a/stdlib/source/test/lux/meta.lux +++ b/stdlib/source/test/lux/meta.lux @@ -1,45 +1,54 @@ -(.require - [library - [lux (.except) - ["_" test (.only Test)] - [abstract - [equivalence (.only Equivalence)] - [monad (.only do)] - [\\specification - ["$[0]" functor (.only Injection Comparison)] - ["$[0]" apply] - ["$[0]" monad]]] - [control - ["[0]" maybe] - ["[0]" try (.only Try) (.use "[1]#[0]" functor)]] - [data - ["[0]" product] - ["[0]" bit (.use "[1]#[0]" equivalence)] - ["[0]" text (.use "[1]#[0]" equivalence) - ["%" \\format (.only format)]] - [collection - ["[0]" list (.use "[1]#[0]" functor monoid)] - ["[0]" set]]] - [math - ["[0]" random (.only Random)] - [number - ["n" nat]]] - [meta - ["[0]" location] - ["[0]" symbol (.use "[1]#[0]" equivalence)] - [macro - ["^" pattern]]]]] - [\\library - ["[0]" / (.only) - ["[0]" type (.use "[1]#[0]" equivalence)]]] - ["[0]" / - ["[1][0]" code] - ["[1][0]" location] - ["[1][0]" symbol] - ["[1][0]" configuration] - ["[1][0]" version] - ["[1][0]" type] - ["[1][0]" macro]]) +(.`` (.`` (.require + [library + [lux (.except) + ["_" test (.only Test)] + [abstract + [equivalence (.only Equivalence)] + [monad (.only do)] + [\\specification + ["$[0]" functor (.only Injection Comparison)] + ["$[0]" apply] + ["$[0]" monad]]] + [control + ["[0]" maybe] + ["[0]" try (.only Try) (.use "[1]#[0]" functor)]] + [data + ["[0]" product] + ["[0]" bit (.use "[1]#[0]" equivalence)] + ["[0]" text (.use "[1]#[0]" equivalence) + ["%" \\format (.only format)]] + [collection + ["[0]" list (.use "[1]#[0]" functor monoid)] + ["[0]" set]]] + [math + ["[0]" random (.only Random)] + [number + ["n" nat]]] + [meta + ["@" target] + ["[0]" location] + ["[0]" symbol (.use "[1]#[0]" equivalence)] + [macro + ["^" pattern]]]]] + [\\library + ["[0]" / (.only) + ["[0]" type (.use "[1]#[0]" equivalence)]]] + ["[0]" / + ["[1][0]" code] + ["[1][0]" location] + ["[1][0]" symbol] + ["[1][0]" configuration] + ["[1][0]" version] + ["[1][0]" type] + ["[1][0]" macro] + ["[1][0]" target (.only) + (.,, (.for "{old}" (.,, (.these ["[1]/[0]" jvm])) + "JVM" (.,, (.these ["[1]/[0]" jvm])) + "JavaScript" (.,, (.these ["[1]/[0]" js])) + "Lua" (.,, (.these ["[1]/[0]" lua])) + "Python" (.,, (.these ["[1]/[0]" python])) + "Ruby" (.,, (.these ["[1]/[0]" ruby])) + (.,, (.these))))]]))) (def !expect (template (_ <pattern> <value>) @@ -945,85 +954,92 @@ _ false))) -(def .public test - Test - (<| (_.covering /._) - (_.for [.Meta .Lux]) - (all _.and - (do [! random.monad] - [target (random.upper_case 1) - version (random.upper_case 1) - source_code (random.upper_case 1) - expected_current_module (random.upper_case 1) - expected_type (at ! each (function (_ name) - {.#Primitive name (list)}) - (random.upper_case 1)) - expected_seed random.nat - expected random.nat - dummy (random.only (|>> (n.= expected) not) random.nat) - expected_location ..random_location - .let [expected_lux [.#info [.#target target - .#version version - .#mode {.#Build} - .#configuration (list)] - .#source [expected_location 0 source_code] - .#location expected_location - .#current_module {.#Some expected_current_module} - .#modules (list) - .#scopes (list) - .#type_context [.#ex_counter 0 - .#var_counter 0 - .#var_bindings (list)] - .#expected {.#Some expected_type} - .#seed expected_seed - .#scope_type_vars (list) - .#extensions [] - .#eval (as (-> Type Code (Meta Any)) []) - .#host []]]] - (all _.and - (_.for [/.functor] - ($functor.spec ..injection (..comparison expected_lux) /.functor)) - (_.for [/.apply] - ($apply.spec ..injection (..comparison expected_lux) /.apply)) - (_.for [/.monad] - ($monad.spec ..injection (..comparison expected_lux) /.monad)) +(`` (`` (def .public test + Test + (<| (_.covering /._) + (_.for [.Meta .Lux]) + (all _.and + (do [! random.monad] + [target (random.upper_case 1) + version (random.upper_case 1) + source_code (random.upper_case 1) + expected_current_module (random.upper_case 1) + expected_type (at ! each (function (_ name) + {.#Primitive name (list)}) + (random.upper_case 1)) + expected_seed random.nat + expected random.nat + dummy (random.only (|>> (n.= expected) not) random.nat) + expected_location ..random_location + .let [expected_lux [.#info [.#target target + .#version version + .#mode {.#Build} + .#configuration (list)] + .#source [expected_location 0 source_code] + .#location expected_location + .#current_module {.#Some expected_current_module} + .#modules (list) + .#scopes (list) + .#type_context [.#ex_counter 0 + .#var_counter 0 + .#var_bindings (list)] + .#expected {.#Some expected_type} + .#seed expected_seed + .#scope_type_vars (list) + .#extensions [] + .#eval (as (-> Type Code (Meta Any)) []) + .#host []]]] + (all _.and + (_.for [/.functor] + ($functor.spec ..injection (..comparison expected_lux) /.functor)) + (_.for [/.apply] + ($apply.spec ..injection (..comparison expected_lux) /.apply)) + (_.for [/.monad] + ($monad.spec ..injection (..comparison expected_lux) /.monad)) - (do random.monad - [expected_value random.nat - expected_error (random.upper_case 1)] - (_.coverage [/.lifted] - (and (|> expected_error - {try.#Failure} - (is (Try Nat)) - /.lifted - (/.result expected_lux) - (!expect (^.multi {try.#Failure actual} - (text#= (location.with expected_location expected_error) - actual)))) - (|> expected_value - {try.#Success} - (is (Try Nat)) - /.lifted - (/.result expected_lux) - (!expect (^.multi {try.#Success actual} - (same? expected_value actual))))))) - - ..compiler_related - ..error_handling - ..module_related - ..context_related - ..definition_related - ..search_related - ..locals_related - (_.for [.Label] - ..label_related) - )) - - /code.test - /location.test - /symbol.test - /configuration.test - /version.test - /type.test - /macro.test - ))) + (do random.monad + [expected_value random.nat + expected_error (random.upper_case 1)] + (_.coverage [/.lifted] + (and (|> expected_error + {try.#Failure} + (is (Try Nat)) + /.lifted + (/.result expected_lux) + (!expect (^.multi {try.#Failure actual} + (text#= (location.with expected_location expected_error) + actual)))) + (|> expected_value + {try.#Success} + (is (Try Nat)) + /.lifted + (/.result expected_lux) + (!expect (^.multi {try.#Success actual} + (same? expected_value actual))))))) + + ..compiler_related + ..error_handling + ..module_related + ..context_related + ..definition_related + ..search_related + ..locals_related + (_.for [.Label] + ..label_related) + )) + + /code.test + /location.test + /symbol.test + /configuration.test + /version.test + /type.test + /macro.test + /target.test + (,, (for @.jvm (,, (these /target/jvm.test)) + @.old (,, (these /target/jvm.test)) + @.js (,, (these /target/js.test)) + @.lua (,, (these /target/lua.test)) + @.python (,, (these /target/python.test)) + @.ruby (,, (these /target/ruby.test)))) + ))))) diff --git a/stdlib/source/test/lux/target.lux b/stdlib/source/test/lux/meta/target.lux index f0010eb83..f0010eb83 100644 --- a/stdlib/source/test/lux/target.lux +++ b/stdlib/source/test/lux/meta/target.lux diff --git a/stdlib/source/test/lux/target/js.lux b/stdlib/source/test/lux/meta/target/js.lux index 0288ca3b1..0288ca3b1 100644 --- a/stdlib/source/test/lux/target/js.lux +++ b/stdlib/source/test/lux/meta/target/js.lux diff --git a/stdlib/source/test/lux/target/jvm.lux b/stdlib/source/test/lux/meta/target/jvm.lux index afda8957c..d526d3917 100644 --- a/stdlib/source/test/lux/target/jvm.lux +++ b/stdlib/source/test/lux/meta/target/jvm.lux @@ -2,7 +2,6 @@ [library [lux (.except Type Primitive Label int) ["_" test (.only Test)] - ["@" target] ["[0]" ffi (.only import)] [abstract ["[0]" monad (.only do)]] @@ -32,7 +31,9 @@ ["i" int] ["f" frac] ["[0]" i32 (.only I32)] - ["[0]" i64]]]]] + ["[0]" i64]]] + [meta + ["@" target]]]] [\\library ["[0]" / ["[1][0]" loader (.only Library)] diff --git a/stdlib/source/test/lux/target/lua.lux b/stdlib/source/test/lux/meta/target/lua.lux index 129748613..129748613 100644 --- a/stdlib/source/test/lux/target/lua.lux +++ b/stdlib/source/test/lux/meta/target/lua.lux diff --git a/stdlib/source/test/lux/target/python.lux b/stdlib/source/test/lux/meta/target/python.lux index ac1d84974..ac1d84974 100644 --- a/stdlib/source/test/lux/target/python.lux +++ b/stdlib/source/test/lux/meta/target/python.lux diff --git a/stdlib/source/test/lux/target/ruby.lux b/stdlib/source/test/lux/meta/target/ruby.lux index d8c7d1605..d8c7d1605 100644 --- a/stdlib/source/test/lux/target/ruby.lux +++ b/stdlib/source/test/lux/meta/target/ruby.lux diff --git a/stdlib/source/test/lux/static.lux b/stdlib/source/test/lux/static.lux index d67af6a0b..aa67ab7a2 100644 --- a/stdlib/source/test/lux/static.lux +++ b/stdlib/source/test/lux/static.lux @@ -2,7 +2,6 @@ [library [lux (.except) ["_" test (.only Test)] - ["@" target] [data ["[0]" text (.use "[1]#[0]" equivalence) ["%" \\format (.only format)]] @@ -16,6 +15,7 @@ ["r" rev] ["f" frac]]] ["[0]" meta (.only) + ["@" target] ["[0]" code]]]] [\\library ["[0]" /]]) |