aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/test
diff options
context:
space:
mode:
authorEduardo Julian2022-07-30 23:13:24 -0400
committerEduardo Julian2022-07-30 23:13:24 -0400
commit6ec8f5d2f6cbf8db45f91e5c4b48c6ec17659f72 (patch)
tree4af1db76b4aec333114f236bc88b9ccddc643e26 /stdlib/source/library/lux/test
parent2d125c27e1ceb0adc14fd82f6984b70a12eda650 (diff)
Extracted test-tallying machinery into its own module.
Diffstat (limited to 'stdlib/source/library/lux/test')
-rw-r--r--stdlib/source/library/lux/test/tally.lux45
-rw-r--r--stdlib/source/library/lux/test/unit.lux57
2 files changed, 56 insertions, 46 deletions
diff --git a/stdlib/source/library/lux/test/tally.lux b/stdlib/source/library/lux/test/tally.lux
new file mode 100644
index 000000000..afbab607a
--- /dev/null
+++ b/stdlib/source/library/lux/test/tally.lux
@@ -0,0 +1,45 @@
+(.require
+ [library
+ [lux (.except and)
+ [data
+ [collection
+ ["[0]" set (.only Set)]]]
+ [math
+ [number
+ ["n" nat]]]
+ [meta
+ ["[0]" symbol]]]]
+ [//
+ ["[0]" coverage (.only Coverage)]])
+
+(type .public Tally
+ (Record
+ [#successes Nat
+ #failures Nat
+ #expected Coverage
+ #actual Coverage]))
+
+(def .public (and parameter subject)
+ (-> Tally Tally Tally)
+ [#successes (n.+ (the #successes parameter) (the #successes subject))
+ #failures (n.+ (the #failures parameter) (the #failures subject))
+ #expected (set.union (the #expected parameter)
+ (the #expected subject))
+ #actual (set.union (the #actual parameter)
+ (the #actual subject))])
+
+(def .public empty
+ Tally
+ [#successes 0
+ #failures 0
+ #expected (set.empty symbol.hash)
+ #actual (set.empty symbol.hash)])
+
+(with_template [<name> <category>]
+ [(def .public <name>
+ Tally
+ (revised <category> .++ ..empty))]
+
+ [success #successes]
+ [failure #failures]
+ )
diff --git a/stdlib/source/library/lux/test/unit.lux b/stdlib/source/library/lux/test/unit.lux
index 0e90bb46c..02e063447 100644
--- a/stdlib/source/library/lux/test/unit.lux
+++ b/stdlib/source/library/lux/test/unit.lux
@@ -15,8 +15,7 @@
["[0]" list (.use "[1]#[0]" functor mix)]
["[0]" set (.only Set)]]]
[math
- [number (.only hex)
- ["n" nat]]]
+ [number (.only hex)]]
["[0]" meta (.only)
["[0]" symbol]
["[0]" code (.only)
@@ -24,39 +23,8 @@
[macro
[syntax (.only syntax)]]]]]
[//
- ["[0]" coverage (.only Coverage)]])
-
-(type .public Tally
- (Record
- [#successes Nat
- #failures Nat
- #expected Coverage
- #actual Coverage]))
-
-(def .public (total parameter subject)
- (-> Tally Tally Tally)
- [#successes (n.+ (the #successes parameter) (the #successes subject))
- #failures (n.+ (the #failures parameter) (the #failures subject))
- #expected (set.union (the #expected parameter)
- (the #expected subject))
- #actual (set.union (the #actual parameter)
- (the #actual subject))])
-
-(def .public start
- Tally
- [#successes 0
- #failures 0
- #expected (set.empty symbol.hash)
- #actual (set.empty symbol.hash)])
-
-(with_template [<name> <category>]
- [(def <name>
- Tally
- (revised <category> .++ ..start))]
-
- [success_tally #successes]
- [failure_tally #failures]
- )
+ ["[0]" coverage (.only Coverage)]
+ ["[0]" tally (.only Tally)]])
(type .public Test
(Async [Tally Text]))
@@ -72,7 +40,7 @@
_ (|> left
(async.upon! (function (_ [l_tally l_documentation])
(async.upon! (function (_ [r_tally r_documentation])
- (write! [(..total l_tally r_tally)
+ (write! [(tally.and l_tally r_tally)
(format l_documentation ..separator r_documentation)]))
right)))
io.run!)]
@@ -91,19 +59,16 @@
(-> Text Test Test)
(|>> %.text context'))
-(def failure_prefix "[Failure] ")
-(def success_prefix "[Success] ")
-
(def .public failure
(-> Text Test)
- (|>> (format ..failure_prefix)
- [..failure_tally]
+ (|>> (format "[Failure] ")
+ [tally.failure]
async#in))
(def .public success
(-> Text Test)
- (|>> (format ..success_prefix)
- [..success_tally]
+ (|>> (format "[Success] ")
+ [tally.success]
async#in))
(def .public (test message condition)
@@ -128,7 +93,7 @@
coverage (set.of_list symbol.hash coverage)]
(|> (..test message condition)
(async#each (function (_ [tally documentation])
- [(revised #actual (set.union coverage) tally)
+ [(revised tally.#actual (set.union coverage) tally)
documentation])))))
(def .public coverage
@@ -148,7 +113,7 @@
(text.interposed ..definition_separator))
coverage (set.of_list symbol.hash coverage)]
(async#each (function (_ [tally documentation])
- [(revised #actual (set.union coverage) tally)
+ [(revised tally.#actual (set.union coverage) tally)
documentation])
(..context' context test))))
@@ -167,7 +132,7 @@
(let [coverage (coverage.decoded module coverage)]
(|> (..context' module test)
(async#each (function (_ [tally documentation])
- [(revised #expected (set.union coverage) tally)
+ [(revised tally.#expected (set.union coverage) tally)
(|> documentation
(text.replaced (format ..clean_up_marker module symbol.separator) "")
(text.replaced ..clean_up_marker ""))])))))