aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/aedifex/artifact/snapshot/version.lux
diff options
context:
space:
mode:
authorEduardo Julian2021-01-28 20:14:11 -0400
committerEduardo Julian2021-01-28 20:14:11 -0400
commit1797521191746640e761cc1b4973d46b8c403dee (patch)
tree197b60bf206f75c32a930b85910101c6d4c0d0f9 /stdlib/source/test/aedifex/artifact/snapshot/version.lux
parent43d28326ad59c74439b96343cc8f619ed7d90231 (diff)
Implemented arithmetic right-shift in terms of logic right-shift.
Diffstat (limited to 'stdlib/source/test/aedifex/artifact/snapshot/version.lux')
-rw-r--r--stdlib/source/test/aedifex/artifact/snapshot/version.lux46
1 files changed, 46 insertions, 0 deletions
diff --git a/stdlib/source/test/aedifex/artifact/snapshot/version.lux b/stdlib/source/test/aedifex/artifact/snapshot/version.lux
new file mode 100644
index 000000000..e08691c3c
--- /dev/null
+++ b/stdlib/source/test/aedifex/artifact/snapshot/version.lux
@@ -0,0 +1,46 @@
+(.module:
+ [lux #*
+ ["_" test (#+ Test)]
+ [abstract
+ [monad (#+ do)]
+ {[0 #spec]
+ [/
+ ["$." equivalence]]}]
+ [control
+ ["." try ("#\." functor)]
+ [parser
+ ["<.>" xml]]]
+ [math
+ ["." random (#+ Random)]]]
+ {#program
+ ["." /]}
+ ["$." /// #_
+ ["#." type]
+ ["#." time]])
+
+(def: #export random
+ (Random /.Version)
+ ($_ random.and
+ $///type.random
+ (random.ascii/alpha 1)
+ $///time.random
+ ))
+
+(def: #export test
+ Test
+ (<| (_.covering /._)
+ (_.for [/.Version])
+ ($_ _.and
+ (_.for [/.equivalence]
+ ($equivalence.spec /.equivalence ..random))
+
+ (do random.monad
+ [expected ..random]
+ (_.cover [/.format /.parser]
+ (|> expected
+ /.format
+ list
+ (<xml>.run /.parser)
+ (try\map (\ /.equivalence = expected))
+ (try.default false))))
+ )))