aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/analysis/pattern.lux8
-rw-r--r--stdlib/source/test/lux/tool/compiler/language/lux/phase/extension.lux10
-rw-r--r--stdlib/source/test/lux/tool/compiler/meta/archive/artifact.lux21
-rw-r--r--stdlib/source/test/lux/tool/compiler/meta/archive/artifact/category.lux32
4 files changed, 55 insertions, 16 deletions
diff --git a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/pattern.lux b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/pattern.lux
index 85a701185..e5eb0c0f5 100644
--- a/stdlib/source/test/lux/tool/compiler/language/lux/analysis/pattern.lux
+++ b/stdlib/source/test/lux/tool/compiler/language/lux/analysis/pattern.lux
@@ -43,11 +43,17 @@
expected_text (random.ascii/lower 2)
expected_lefts random.nat
- expected_right? random.bit])
+ expected_right? random.bit
+
+ left ..random
+ right ..random])
(`` ($_ _.and
(_.for [/.equivalence]
($equivalence.spec /.equivalence ..random))
+ (_.cover [/.format]
+ (bit#= (# /.equivalence = left right)
+ (text#= (/.format left) (/.format right))))
(_.cover [/.unit]
(case (/.unit)
(^ (/.unit))
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 517d5eb57..ab2af87eb 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
@@ -257,6 +257,16 @@
_
false))))
+ (_.cover [/.up]
+ (|> (do phase.monad
+ []
+ (in expected))
+ (: (/.Operation Int Nat Nat Nat))
+ /.up
+ (: (phase.Operation Int Nat))
+ (# phase.functor each (same? expected))
+ (phase.result state)
+ (try.else false)))
))
(_.for [/.State]
..test|state)
diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive/artifact.lux b/stdlib/source/test/lux/tool/compiler/meta/archive/artifact.lux
index b241b0c46..2bb161796 100644
--- a/stdlib/source/test/lux/tool/compiler/meta/archive/artifact.lux
+++ b/stdlib/source/test/lux/tool/compiler/meta/archive/artifact.lux
@@ -6,22 +6,12 @@
[\\specification
["$[0]" equivalence]]]
[math
- ["[0]" random {"+" Random} ("[1]#[0]" monad)]]]]
+ ["[0]" random {"+" Random}]]]]
+ ["[0]" / "_"
+ ["[1][0]" category]]
[\\library
["[0]" /]])
-(def: random_category
- (Random /.Category)
- ($_ random.or
- (random#in [])
- (random.ascii/lower 1)
- (random.ascii/lower 2)
- (random.ascii/lower 3)
- (random.ascii/lower 4)
- (random.ascii/lower 5)
- (random.ascii/lower 6)
- ))
-
(def: random_dependency
(Random /.Dependency)
($_ random.and
@@ -33,9 +23,8 @@
(Random /.Artifact)
($_ random.and
random.nat
- ..random_category
+ /category.random
random.bit
- (random.set /.dependency_hash 5 ..random_dependency)
))
(def: .public test
@@ -45,4 +34,6 @@
($_ _.and
(_.for [/.equivalence]
($equivalence.spec /.equivalence ..random))
+
+ /category.test
)))
diff --git a/stdlib/source/test/lux/tool/compiler/meta/archive/artifact/category.lux b/stdlib/source/test/lux/tool/compiler/meta/archive/artifact/category.lux
new file mode 100644
index 000000000..8f31cca51
--- /dev/null
+++ b/stdlib/source/test/lux/tool/compiler/meta/archive/artifact/category.lux
@@ -0,0 +1,32 @@
+(.using
+ [library
+ [lux "*"
+ ["_" test {"+" Test}]
+ [abstract
+ [\\specification
+ ["$[0]" equivalence]]]
+ [math
+ ["[0]" random {"+" Random} ("[1]#[0]" monad)]]]]
+ [\\library
+ ["[0]" /]])
+
+(def: .public random
+ (Random /.Category)
+ ($_ random.or
+ (random#in [])
+ (random.ascii/lower 1)
+ (random.ascii/lower 2)
+ (random.ascii/lower 3)
+ (random.ascii/lower 4)
+ (random.ascii/lower 5)
+ (random.ascii/lower 6)
+ ))
+
+(def: .public test
+ Test
+ (<| (_.covering /._)
+ (_.for [/.Category])
+ ($_ _.and
+ (_.for [/.equivalence]
+ ($equivalence.spec /.equivalence ..random))
+ )))