diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux | 30 | ||||
-rw-r--r-- | stdlib/source/test/lux/world/net.lux | 6 | ||||
-rw-r--r-- | stdlib/source/test/lux/world/net/uri/scheme.lux | 163 | ||||
-rw-r--r-- | stdlib/source/test/lux/world/time.lux | 25 |
4 files changed, 187 insertions, 37 deletions
diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux index c9953642d..755487cce 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/extension.lux @@ -183,36 +183,6 @@ (phase.result [/.#bundle /.empty /.#state state]) (try.else false))) - (_.coverage [/.incorrect_arity] - (let [handler (is (/.Handler Int Nat Nat) - (function (_ @self phase archive inputs) - (phase.except /.incorrect_arity [@self 2 (list.size inputs)])))] - (|> (do phase.monad - [_ (/.install extender extension handler)] - (/.apply archive.empty phase [extension (list)])) - (phase.result [/.#bundle /.empty - /.#state state]) - (pipe.when - {try.#Failure error} - (exception.match? /.incorrect_arity error) - - _ - false)))) - (_.coverage [/.invalid_syntax] - (let [handler (is (/.Handler Int Nat Nat) - (function (_ @self phase archive inputs) - (phase.except /.invalid_syntax [@self %.nat inputs])))] - (|> (do phase.monad - [_ (/.install extender extension handler)] - (/.apply archive.empty phase [extension (list left right)])) - (phase.result [/.#bundle /.empty - /.#state state]) - (pipe.when - {try.#Failure error} - (exception.match? /.invalid_syntax error) - - _ - false)))) (_.for [/.Name] ..test|name) )) diff --git a/stdlib/source/test/lux/world/net.lux b/stdlib/source/test/lux/world/net.lux index 29427d6c3..f0c4acb39 100644 --- a/stdlib/source/test/lux/world/net.lux +++ b/stdlib/source/test/lux/world/net.lux @@ -13,7 +13,9 @@ ["[1][0]" http ["[1]/[0]" client] ["[1]/[0]" status] - ["[1]/[0]" version]]]) + ["[1]/[0]" version]] + ["[1][0]" uri + ["[1]/[0]" scheme]]]) (def .public test Test @@ -33,4 +35,6 @@ /http/client.test /http/status.test /http/version.test + + /uri/scheme.test ))) diff --git a/stdlib/source/test/lux/world/net/uri/scheme.lux b/stdlib/source/test/lux/world/net/uri/scheme.lux new file mode 100644 index 000000000..c91c49fbf --- /dev/null +++ b/stdlib/source/test/lux/world/net/uri/scheme.lux @@ -0,0 +1,163 @@ +(.require + [library + [lux (.except) + [abstract + [monad (.only do)] + [\\specification + ["$[0]" equivalence] + ["$[0]" hash]]] + [data + [collection + ["[0]" list] + ["[0]" set]]] + [math + ["[0]" random (.only Random) (.use "[1]#[0]" monad)] + [number + ["n" nat]]] + [test + ["_" property (.only Test)]]]] + [\\library + ["[0]" /]]) + +(def .public random + (Random /.Scheme) + (all random.either + (random#in /.about) + (random#in /.acap) + (random#in /.user_account) + (random#in /.anonymous_customer_reference) + (random#in /.attachment) + + (random#in /.bitcoin) + (random#in /.blob) + + (random#in /.calendar_access_protocol) + + (random#in /.data) + (random#in /.dns) + (random#in /.dntp) + (random#in /.digital_object_identifier) + (random#in /.drm) + + (random#in /.feed) + (random#in /.file) + (random#in /.finger) + (random#in /.fish) + (random#in /.fm) + (random#in /.ftp) + + (random#in /.geo) + (random#in /.git) + + (random#in /.http) + (random#in /.https) + + (random#in /.imap) + (random#in /.ipp) + (random#in /.ipps) + (random#in /.irc) + (random#in /.irc6) + (random#in /.ircs) + + (random#in /.jar) + + (random#in /.ldap) + (random#in /.ldaps) + + (random#in /.magnet) + (random#in /.mail_to) + (random#in /.apache_maven) + + (random#in /.pop) + + (random#in /.sip) + (random#in /.sips) + (random#in /.sms) + (random#in /.snmp) + (random#in /.ssh) + (random#in /.stun) + (random#in /.stuns) + + (random#in /.telephone_number) + (random#in /.turn) + (random#in /.turns) + + (random#in /.xmpp) + )) + +(def .public test + Test + (<| (_.covering /._) + (do [! random.monad] + [expected ..random]) + (_.for [/.Scheme]) + (`` (all _.and + (_.for [/.equivalence] + ($equivalence.spec /.equivalence ..random)) + (_.for [/.hash] + ($hash.spec /.hash ..random)) + + (_.coverage [/.name /.scheme] + (|> expected + /.name + /.scheme + (at /.equivalence = expected))) + (with_expansions [<schemes> (these /.about /.acap /.user_account /.anonymous_customer_reference /.attachment + /.bitcoin /.blob + /.calendar_access_protocol + /.data /.dns /.dntp /.digital_object_identifier /.drm + /.feed /.file /.finger /.fish /.fm /.ftp + /.geo /.git + /.http /.https + /.imap /.ipp /.ipps /.irc /.irc6 /.ircs + /.jar + /.ldap /.ldaps + /.magnet /.mail_to /.apache_maven + /.pop + /.sip /.sips /.sms /.snmp /.ssh /.stun /.stuns + /.telephone_number /.turn /.turns + /.xmpp)] + (_.coverage [<schemes>] + (let [options (list <schemes>) + uniques (set.of_list /.hash options)] + (n.= (list.size options) + (set.size uniques))))) + (,, (with_template [<original> <alias>] + [(_.coverage [<alias>] + (at /.equivalence = <original> <alias>))] + + [/.acap /.application_configuration_access_protocol] + + [/.dns /.domain_name_system] + [/.dntp /.direct_network_transfer_protocol] + + [/.ftp /.file_transfer_protocol] + + [/.http /.hypertext_transfer_protocol] + [/.https /.secure_hypertext_transfer_protocol] + + [/.imap /.internet_message_access_protocol] + [/.ipp /.internet_printing_protocol] + [/.ipps /.secure_internet_printing_protocol] + [/.irc /.internet_relay_chat] + [/.ircs /.secure_internet_relay_chat] + + [/.ldap /.lightweight_directory_access_protocol] + [/.ldaps /.secure_lightweight_directory_access_protocol] + + [/.pop /.post_office_protocol] + + [/.sip /.session_initiation_protocol] + [/.sips /.secure_session_initiation_protocol] + [/.sms /.short_message_service] + [/.snmp /.simple_network_management_protocol] + [/.ssh /.secure_shell_protocol] + + [/.stun /.session_traversal_utilities_for_nat] + [/.stuns /.secure_session_traversal_utilities_for_nat] + + [/.turn /.traversal_using_relays_around_nat] + [/.turns /.secure_traversal_using_relays_around_nat] + + [/.xmpp /.extensible_messaging_and_presence_protocol])) + )))) diff --git a/stdlib/source/test/lux/world/time.lux b/stdlib/source/test/lux/world/time.lux index 68e6e478c..d6ee9b953 100644 --- a/stdlib/source/test/lux/world/time.lux +++ b/stdlib/source/test/lux/world/time.lux @@ -50,12 +50,25 @@ Test (do [! random.monad] [expected random.time] - (_.coverage [/.clock /.time] - (|> expected - /.clock - /.time - (try#each (at /.equivalence = expected)) - (try.else false))))) + (all _.and + (_.coverage [/.clock /.time] + (|> expected + /.clock + /.time + (try#each (at /.equivalence = expected)) + (try.else false))) + (let [expected (/.clock expected)] + (`` (all _.and + (,, (with_template [<limit> <slot>] + [(_.coverage [<slot>] + (n.< <limit> (the <slot> expected)))] + + [0024 /.#hour] + [0060 /.#minute] + [0060 /.#second] + [1000 /.#milli_second] + ))))) + ))) (def for_ranges Test |