diff options
author | Eduardo Julian | 2022-07-30 23:13:24 -0400 |
---|---|---|
committer | Eduardo Julian | 2022-07-30 23:13:24 -0400 |
commit | 6ec8f5d2f6cbf8db45f91e5c4b48c6ec17659f72 (patch) | |
tree | 4af1db76b4aec333114f236bc88b9ccddc643e26 /stdlib/source/library/lux/test | |
parent | 2d125c27e1ceb0adc14fd82f6984b70a12eda650 (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.lux | 45 | ||||
-rw-r--r-- | stdlib/source/library/lux/test/unit.lux | 57 |
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 ""))]))))) |