aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/test')
-rw-r--r--stdlib/source/test/lux.lux3
-rw-r--r--stdlib/source/test/lux/control/maybe.lux3
-rw-r--r--stdlib/source/test/lux/data.lux5
-rw-r--r--stdlib/source/test/lux/data/collection/list.lux3
-rw-r--r--stdlib/source/test/lux/data/color.lux25
-rw-r--r--stdlib/source/test/lux/data/color/rgb.lux128
-rw-r--r--stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux4
-rw-r--r--stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux10
-rw-r--r--stdlib/source/test/lux/meta/extension.lux124
-rw-r--r--stdlib/source/test/lux/meta/type.lux4
-rw-r--r--stdlib/source/test/lux/meta/type/linear.lux (renamed from stdlib/source/test/lux/meta/type/resource.lux)0
11 files changed, 223 insertions, 86 deletions
diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux
index 916f1dbc2..29e2725cf 100644
--- a/stdlib/source/test/lux.lux
+++ b/stdlib/source/test/lux.lux
@@ -895,7 +895,8 @@
item/1 random.nat
item/2 random.nat]
(all _.and
- (_.coverage [/.Either]
+ (_.coverage [/.Either
+ /.#Left /.#Right]
(and (exec
(is (/.Either Nat Text)
{.#Left left})
diff --git a/stdlib/source/test/lux/control/maybe.lux b/stdlib/source/test/lux/control/maybe.lux
index d99622737..7ff61a642 100644
--- a/stdlib/source/test/lux/control/maybe.lux
+++ b/stdlib/source/test/lux/control/maybe.lux
@@ -29,7 +29,8 @@
(def .public test
Test
(<| (_.covering /._)
- (_.for [.Maybe])
+ (_.for [.Maybe
+ .#None .#Some])
(all _.and
(_.for [/.equivalence]
($equivalence.spec (/.equivalence n.equivalence) (random.maybe random.nat)))
diff --git a/stdlib/source/test/lux/data.lux b/stdlib/source/test/lux/data.lux
index b242a4582..74432550a 100644
--- a/stdlib/source/test/lux/data.lux
+++ b/stdlib/source/test/lux/data.lux
@@ -10,8 +10,7 @@
["[0]" /
["[1][0]" binary]
["[1][0]" bit]
- ["[1][0]" color (.only)
- ["[1]/[0]" named]]
+ ["[1][0]" color]
["[1][0]" identity]
["[1][0]" product]
["[1][0]" sum]
@@ -44,7 +43,7 @@
/binary.test
/bit.test
/color.test
- /color/named.test))
+ ))
(def test/1
Test
diff --git a/stdlib/source/test/lux/data/collection/list.lux b/stdlib/source/test/lux/data/collection/list.lux
index f32a5c3d5..3b079d53d 100644
--- a/stdlib/source/test/lux/data/collection/list.lux
+++ b/stdlib/source/test/lux/data/collection/list.lux
@@ -415,7 +415,8 @@
(def .public test
Test
(<| (_.covering /._)
- (_.for [.List])
+ (_.for [.List
+ .#End .#Item])
(let [(open "/#[0]") (/.equivalence n.equivalence)
(open "/#[0]") /.functor]
(do [! random.monad]
diff --git a/stdlib/source/test/lux/data/color.lux b/stdlib/source/test/lux/data/color.lux
index e098211cb..c56352d3d 100644
--- a/stdlib/source/test/lux/data/color.lux
+++ b/stdlib/source/test/lux/data/color.lux
@@ -11,7 +11,7 @@
[collection
["[0]" list]]]
[math
- ["[0]" random (.only Random)]
+ ["[0]" random (.only Random) (.use "[1]#[0]" functor)]
[number
["n" nat]
["f" frac]
@@ -20,12 +20,15 @@
[test
["_" property (.only Test)]]]]
[\\library
- ["[0]" /]])
+ ["[0]" / (.only)
+ ["[0]" rgb]]]
+ ["[0]" /
+ ["[1][0]" rgb]
+ ["[1][0]" named]])
(def .public random
(Random /.Color)
- (|> (all random.and random.nat random.nat random.nat)
- (at random.monad each /.of_rgb)))
+ (random#each /.of_rgb /rgb.random))
(def scale
(-> Nat Frac)
@@ -51,11 +54,12 @@
[tr tg tb] (/.rgb to)]
(square_root
(all f.+
- (|> (scale tr) (f.- (scale fr)) square)
- (|> (scale tg) (f.- (scale fg)) square)
- (|> (scale tb) (f.- (scale fb)) square)))))
+ (|> (scale (rgb.number tr)) (f.- (scale (rgb.number fr))) square)
+ (|> (scale (rgb.number tg)) (f.- (scale (rgb.number fg))) square)
+ (|> (scale (rgb.number tb)) (f.- (scale (rgb.number fb))) square)))))
-(def rgb_error_margin +1.8)
+(def rgb_error_margin
+ +1.8)
(with_template [<field>]
[(def (<field> color)
@@ -70,7 +74,7 @@
(def (encoding expected)
(-> /.Color Test)
(all _.and
- (_.coverage [/.RGB /.rgb /.of_rgb]
+ (_.coverage [/.rgb /.of_rgb]
(|> expected /.rgb /.of_rgb
(at /.equivalence = expected)))
(_.coverage [/.HSL /.hsl /.of_hsl]
@@ -210,4 +214,7 @@
(_.coverage [/.translucent]
(r.= /.transparent (r.+ /.translucent /.translucent)))
))
+
+ /rgb.test
+ /named.test
))))
diff --git a/stdlib/source/test/lux/data/color/rgb.lux b/stdlib/source/test/lux/data/color/rgb.lux
new file mode 100644
index 000000000..5781c9efa
--- /dev/null
+++ b/stdlib/source/test/lux/data/color/rgb.lux
@@ -0,0 +1,128 @@
+(.require
+ [library
+ [lux (.except)
+ [abstract
+ [monad (.only do)]
+ [\\specification
+ ["[0]S" equivalence]
+ ["[0]S" hash]
+ ["[0]S" monoid]]]
+ [control
+ ["[0]" try (.use "[1]#[0]" functor)]
+ ["[0]" exception]]
+ [math
+ ["[0]" random (.only Random) (.use "[1]#[0]" functor)]
+ [number
+ ["n" nat]]]
+ [test
+ ["_" property (.only Test)]]]]
+ [\\library
+ ["[0]" /]])
+
+(def .public value
+ (Random /.Value)
+ (random.one (|>> (n.% /.limit)
+ /.value
+ try.maybe)
+ random.nat))
+
+(def .public random
+ (Random /.RGB)
+ (do random.monad
+ [red ..value
+ green ..value
+ blue ..value]
+ (in [/.#red red
+ /.#green green
+ /.#blue blue])))
+
+(def .public test
+ Test
+ (<| (_.covering /._)
+ (do [! random.monad]
+ [expected_value ..value
+ expected ..random])
+ (all _.and
+ (_.for [/.Value]
+ (all _.and
+ (_.coverage [/.number /.value]
+ (|> expected_value
+ /.number
+ /.value
+ (try#each (|>> /.number
+ (n.= (/.number expected_value))))
+ (try.else false)))
+ (_.coverage [/.limit]
+ (and (when (/.value /.limit)
+ {try.#Failure _} true
+ {try.#Success _} false)
+ (when (/.value (-- /.limit))
+ {try.#Failure _} false
+ {try.#Success _} true)))
+ (_.coverage [/.least]
+ (when (/.value (++ (/.number /.least)))
+ {try.#Failure _} false
+ {try.#Success _} true))
+ (_.coverage [/.most]
+ (when (/.value (-- (/.number /.most)))
+ {try.#Failure _} false
+ {try.#Success _} true))
+ (_.coverage [/.invalid]
+ (and (when (/.value (-- (/.number /.least)))
+ {try.#Failure it} (exception.match? /.invalid it)
+ {try.#Success _} false)
+ (when (/.value (++ (/.number /.most)))
+ {try.#Failure it} (exception.match? /.invalid it)
+ {try.#Success _} false)))
+ ))
+ (_.for [/.RGB]
+ (all _.and
+ (_.for [/.equivalence]
+ (equivalenceS.spec /.equivalence ..random))
+ (_.for [/.hash]
+ (hashS.spec /.hash ..random))
+ (_.for [/.addition]
+ (monoidS.spec /.equivalence /.addition ..random))
+ (_.for [/.subtraction]
+ (monoidS.spec /.equivalence /.subtraction ..random))
+
+ (_.coverage [/.rgb]
+ (`` (and (let [red (/.number expected_value)
+ green (/.number expected_value)
+ blue (/.number expected_value)]
+ (when (/.rgb red green blue)
+ {try.#Failure _}
+ false
+
+ {try.#Success it}
+ (and (n.= (/.number expected_value)
+ (/.number (the /.#red it)))
+ (n.= (/.number expected_value)
+ (/.number (the /.#green it)))
+ (n.= (/.number expected_value)
+ (/.number (the /.#blue it))))))
+ (,, (with_template [<red_offset> <green_offset> <blue_offset>]
+ [(let [red (n.+ <red_offset> (/.number expected_value))
+ green (n.+ <green_offset> (/.number expected_value))
+ blue (n.+ <blue_offset> (/.number expected_value))]
+ (when (/.rgb red green blue)
+ {try.#Failure it}
+ (exception.match? /.invalid it)
+
+ {try.#Success _}
+ false))]
+
+ [/.limit 0 0]
+ [0 /.limit 0]
+ [0 0 /.limit]
+ )))))
+ (_.coverage [/.complement]
+ (let [~expected (/.complement expected)
+ (open "/#[0]") /.equivalence]
+ (and (not (/#= expected ~expected))
+ (/#= expected (/.complement ~expected)))))
+ (_.coverage [/.black /.white]
+ (and (at /.equivalence = /.white (/.complement /.black))
+ (at /.equivalence = /.black (/.complement /.white))))
+ ))
+ )))
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux
index a12f284a3..ca7bb0c3b 100644
--- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux
+++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/synthesis/primitive.lux
@@ -77,9 +77,9 @@
Test
(<| (_.context (%.symbol (symbol ////synthesis.#Primitive)))
(`` (all _.and
- (,, (with_template [<analysis> <synthesis> <generator>]
+ (,, (with_template [<analysis> <synthesis> <translator>]
[(do r.monad
- [expected <generator>]
+ [expected <translator>]
(_.test (%.symbol (symbol <synthesis>))
(|> {////analysis.#Primitive {<analysis> expected}}
(//.phase archive.empty)
diff --git a/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux b/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux
index 2097736ad..57ce1b585 100644
--- a/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux
+++ b/stdlib/source/test/lux/meta/compiler/meta/archive/registry.lux
@@ -114,8 +114,8 @@
[/.definition (is category.Definition [expected_name {.#None}]) /.definitions category.#Definition /.analyser expected_name]
[/.analyser expected_name /.analysers category.#Analyser /.synthesizer expected_name]
- [/.synthesizer expected_name /.synthesizers category.#Synthesizer /.generator expected_name]
- [/.generator expected_name /.generators category.#Generator /.declaration expected_name]
+ [/.synthesizer expected_name /.synthesizers category.#Synthesizer /.translator expected_name]
+ [/.translator expected_name /.translators category.#Translator /.declaration expected_name]
[/.declaration expected_name /.declarations category.#Declaration /.custom expected_name]
[/.custom expected_name /.customs category.#Custom /.definition (is category.Definition [expected_name {.#None}])]
))
@@ -130,7 +130,7 @@
[/.definition (is category.Definition [expected_name {.#None}]) product.left]
[/.analyser expected_name |>]
[/.synthesizer expected_name |>]
- [/.generator expected_name |>]
+ [/.translator expected_name |>]
[/.declaration expected_name |>]
[/.custom expected_name |>]
))))
@@ -155,7 +155,7 @@
[it {.#None}]))]
[/.analyser /.analysers text.equivalence (|>>)]
[/.synthesizer /.synthesizers text.equivalence (|>>)]
- [/.generator /.generators text.equivalence (|>>)]
+ [/.translator /.translators text.equivalence (|>>)]
[/.declaration /.declarations text.equivalence (|>>)]
[/.custom /.customs text.equivalence (|>>)]
))))
@@ -174,7 +174,7 @@
[/.definition (is category.Definition [expected_name {.#None}]) product.left]
[/.analyser expected_name |>]
[/.synthesizer expected_name |>]
- [/.generator expected_name |>]
+ [/.translator expected_name |>]
[/.declaration expected_name |>]
[/.custom expected_name |>]
))))
diff --git a/stdlib/source/test/lux/meta/extension.lux b/stdlib/source/test/lux/meta/extension.lux
index e27b0282f..1302a74fc 100644
--- a/stdlib/source/test/lux/meta/extension.lux
+++ b/stdlib/source/test/lux/meta/extension.lux
@@ -45,7 +45,7 @@
["[0]" unit]]]
[language
[lux
- ["[0]" generation]
+ ["[0]" translation]
["[0]" declaration]
["[0]" analysis (.only)
["[0]" type]
@@ -53,16 +53,16 @@
["[0]" synthesis (.only)
["<[1]>" \\parser]]
[phase
- [generation
+ [translation
(.,, (.for "JVM" (.,, (.these ["[0]" jvm
["[1]/[0]" runtime]]))
(.,, (.these))))]]]]]]
[test
["_" property (.only Test)]]]]
[\\library
- ["[0]" / (.only analysis synthesis generation declaration)]])))
+ ["[0]" / (.only analysis synthesis translation declaration)]])))
-... Generation
+... Translation
(for @.old
(these)
@@ -97,57 +97,57 @@
[location.dummy]
(is analysis.Analysis)))))))
- ... Generation
- (def my_generation|generation
- Generation
- (generation (_ phase archive [pass_through <synthesis>.any])
- (phase archive pass_through)))
+ ... Translation
+ (def my_translation|translation
+ Translation
+ (translation (_ phase archive [pass_through <synthesis>.any])
+ (phase archive pass_through)))
- (def my_generation|synthesis
+ (def my_translation|synthesis
Synthesis
(synthesis (_ phase archive [parameters (<>.some <analysis>.any)])
(let [! phase.monad]
(|> parameters
(monad.each ! (phase archive))
- (at ! each (|>> {synthesis.#Extension (symbol ..my_generation|generation)}
+ (at ! each (|>> {synthesis.#Extension (symbol ..my_translation|translation)}
[location.dummy]
(is synthesis.Synthesis)))))))
- (def my_generation
+ (def my_translation
Analysis
(analysis (_ phase archive [parameters (<>.some <code>.any)])
(let [! phase.monad]
(|> parameters
(monad.each ! (phase archive))
(at ! each (|>> (is (List analysis.Analysis))
- {analysis.#Extension (symbol ..my_generation|synthesis)}
+ {analysis.#Extension (symbol ..my_translation|synthesis)}
[location.dummy]
(is analysis.Analysis)))))))
- (def dummy_generation|generation
- Generation
- (generation (_ phase archive [])
- (let [[_ self] (symbol ..dummy_generation)]
- (at phase.monad in
- (for @.jvm (jvm.string self)
- @.js (js.string self)
- @.python (python.unicode self)
- @.lua (lua.string self)
- @.ruby (ruby.string self)
- @.php (php.string self)
- @.scheme (scheme.string self))))))
-
- (def dummy_generation|synthesis
+ (def dummy_translation|translation
+ Translation
+ (translation (_ phase archive [])
+ (let [[_ self] (symbol ..dummy_translation)]
+ (at phase.monad in
+ (for @.jvm (jvm.string self)
+ @.js (js.string self)
+ @.python (python.unicode self)
+ @.lua (lua.string self)
+ @.ruby (ruby.string self)
+ @.php (php.string self)
+ @.scheme (scheme.string self))))))
+
+ (def dummy_translation|synthesis
Synthesis
(synthesis (_ phase archive [])
(at phase.monad in (is synthesis.Synthesis
- [location.dummy {synthesis.#Extension (symbol ..dummy_generation|generation) (list)}]))))
+ [location.dummy {synthesis.#Extension (symbol ..dummy_translation|translation) (list)}]))))
- (def dummy_generation
+ (def dummy_translation
Analysis
(analysis (_ phase archive [])
(at phase.monad in (is analysis.Analysis
- [location.dummy {analysis.#Extension (symbol ..dummy_generation|synthesis) (list)}]))))
+ [location.dummy {analysis.#Extension (symbol ..dummy_translation|synthesis) (list)}]))))
... Declaration
(def my_declaration
@@ -166,37 +166,37 @@
expressionS (declaration.lifted_synthesis
(synthesis_phase lux archive expressionA))
- generation_phase declaration.generation
- expressionG (declaration.lifted_generation
- (generation_phase lux archive expressionS))
+ translation_phase declaration.translation
+ expressionG (declaration.lifted_translation
+ (translation_phase lux archive expressionS))
- _ (declaration.lifted_generation
- (generation.with_new_context archive unit.none
+ _ (declaration.lifted_translation
+ (translation.with_new_context archive unit.none
(do !
- [[module_id artifact_id] (generation.context archive)
+ [[module_id artifact_id] (translation.context archive)
.let [commentary (format "Successfully installed declaration " (%.text self) "!")]
- _ (generation.save! artifact_id {.#None}
- (for @.jvm (let [$class (jvm/runtime.class_name [module_id artifact_id])]
- (<| [$class]
- (try.else (binary.empty 0))
- (try#each (binaryF.result class.format))
- (class.class version.v6_0 class.public
- (name.internal $class)
- {.#None}
- (name.internal "java.lang.Object")
- (list)
- (list)
- (list)
- (list))))
- @.js (js.comment commentary
- (js.statement (js.string commentary)))
- @.python (python.comment commentary
- (python.statement (python.string commentary)))
- @.lua (lua.comment commentary
- (lua.statement expressionG))
- @.ruby (ruby.comment commentary
- (ruby.statement (ruby.string commentary)))))]
- (generation.log! commentary))))]
+ _ (translation.save! artifact_id {.#None}
+ (for @.jvm (let [$class (jvm/runtime.class_name [module_id artifact_id])]
+ (<| [$class]
+ (try.else (binary.empty 0))
+ (try#each (binaryF.result class.format))
+ (class.class version.v6_0 class.public
+ (name.internal $class)
+ {.#None}
+ (name.internal "java.lang.Object")
+ (list)
+ (list)
+ (list)
+ (list))))
+ @.js (js.comment commentary
+ (js.statement (js.string commentary)))
+ @.python (python.comment commentary
+ (python.statement (python.string commentary)))
+ @.lua (lua.comment commentary
+ (lua.statement expressionG))
+ @.ruby (ruby.comment commentary
+ (ruby.statement (ruby.string commentary)))))]
+ (translation.log! commentary))))]
(in declaration.no_requirements))))
(..my_declaration (n.* 2 3))
@@ -216,13 +216,13 @@
[/.analysis ..my_analysis]
[/.synthesis ..my_synthesis]))
- (_.coverage [/.generation]
+ (_.coverage [/.translation]
(for @.old false
(and (n.= expected
- (..my_generation expected))
- (let [[_ expected] (symbol ..dummy_generation)]
+ (..my_translation expected))
+ (let [[_ expected] (symbol ..dummy_translation)]
(text#= expected
- (..dummy_generation))))))
+ (..dummy_translation))))))
(_.coverage [/.declaration]
true)
)))))
diff --git a/stdlib/source/test/lux/meta/type.lux b/stdlib/source/test/lux/meta/type.lux
index 488bdabc0..50cccc419 100644
--- a/stdlib/source/test/lux/meta/type.lux
+++ b/stdlib/source/test/lux/meta/type.lux
@@ -39,7 +39,7 @@
["[1][0]" implicit]
["[1][0]" quotient]
["[1][0]" refinement]
- ["[1][0]" resource]
+ ["[1][0]" linear]
["[1][0]" unit]
["[1][0]" variance]
["[1][0]" poly]
@@ -569,7 +569,7 @@
/implicit.test
/quotient.test
/refinement.test
- /resource.test
+ /linear.test
/unit.test
/variance.test
/poly.test
diff --git a/stdlib/source/test/lux/meta/type/resource.lux b/stdlib/source/test/lux/meta/type/linear.lux
index 4b134ebbe..4b134ebbe 100644
--- a/stdlib/source/test/lux/meta/type/resource.lux
+++ b/stdlib/source/test/lux/meta/type/linear.lux