aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/specification/lux/abstract/mix.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/specification/lux/abstract/mix.lux')
-rw-r--r--stdlib/source/specification/lux/abstract/mix.lux23
1 files changed, 23 insertions, 0 deletions
diff --git a/stdlib/source/specification/lux/abstract/mix.lux b/stdlib/source/specification/lux/abstract/mix.lux
new file mode 100644
index 000000000..1097ac37f
--- /dev/null
+++ b/stdlib/source/specification/lux/abstract/mix.lux
@@ -0,0 +1,23 @@
+(.module:
+ [library
+ [lux #*
+ ["_" test (#+ Test)]
+ [abstract
+ [monad (#+ do)]]
+ [math
+ ["." random]
+ [number
+ ["n" nat]]]]]
+ [//
+ [functor (#+ Injection Comparison)]]
+ [\\library
+ ["." /]])
+
+(def: .public (spec injection comparison (^open "@//."))
+ (All [f] (-> (Injection f) (Comparison f) (/.Mix f) Test))
+ (do random.monad
+ [subject random.nat
+ parameter random.nat]
+ (_.cover [/.Mix]
+ (n.= (@//mix n.+ parameter (injection subject))
+ (n.+ parameter subject)))))