diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/test/lux/meta.lux | 276 |
1 files changed, 143 insertions, 133 deletions
diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux index bb5da38b8..03ac91796 100644 --- a/stdlib/source/test/lux/meta.lux +++ b/stdlib/source/test/lux/meta.lux @@ -802,144 +802,154 @@ (try.else false)))) ))) -... (def label_related -... Test -... (do [! random.monad] -... [current_module (random.upper_cased 1) -... label_module (random.only (|>> (text#= current_module) not) -... (random.upper_cased 1)) +(def label_related + Test + (do [! random.monad] + [current_module (random.upper_cased 1) + label_module (random.upper_cased 2) -... name_0 (random.upper_cased 1) -... name_1 (random.only (|>> (text#= name_0) not) -... (random.upper_cased 1)) + name_0 (random.upper_cased 3) + ... name_1 (random.upper_cased 4) -... .let [random_tag (of ! each (|>> [label_module]) -... (random.upper_cased 1)) -... random_labels (is (Random [Text (List Text)]) -... (do ! -... [head (random.lower_cased 5)] -... (|> (random.lower_cased 5) -... (random.only (|>> (text#= head) not)) -... (random.set text.hash 3) -... (of ! each set.list) -... (random.and (in head)))))] -... tags_0 random_labels -... tags_1 (let [set/0 (set.of_list text.hash {.#Item tags_0})] -... (random.only (|>> {.#Item} -... (list.any? (set.member? set/0)) -... not) -... random_labels)) -... .let [type_0 {.#Nominal name_0 (list)} -... type_1 {.#Nominal name_1 (list)} + .let [random_tag (of ! each (|>> [label_module]) + (random.upper_cased 1)) + random_labels (is (-> Nat + (Random [Text (List Text)])) + (function (_ size) + (do ! + [head (random.lower_cased size)] + (|> (random.lower_cased size) + (random.only (|>> (text#= head) not)) + (random.set text.hash 3) + (of ! each set.list) + (random.and (in head))))))] + tags_0 (random_labels 5) + ... tags_1 (let [set/0 (set.of_list text.hash {.#Item tags_0})] + ... (random.only (|>> {.#Item} + ... (list.any? (set.member? set/0)) + ... not) + ... random_labels)) + .let [type_0 {.#Nominal name_0 (list)} + ... type_1 {.#Nominal name_1 (list)} -... expected_lux -... (is Lux -... [.#info [.#target "" -... .#version "" -... .#mode {.#Build} -... .#configuration (list)] -... .#source [location.dummy 0 ""] -... .#location location.dummy -... .#current_module {.#Some current_module} -... .#modules (list [current_module -... [.#module_hash 0 -... .#module_aliases (list) -... .#definitions (list) -... .#imports (list label_module) -... .#module_state {.#Active}]] -... [label_module -... [.#module_hash 0 -... .#module_aliases (list) -... .#definitions (list.partial [name_0 {.#Type [true type_0 {.#Left tags_0}]}] -... [name_1 {.#Type [true type_1 {.#Right tags_1}]}] -... (all list#composite -... (|> {.#Item tags_0} -... list.enumeration -... (list#each (function (_ [index short]) -... [short {.#Tag [true type_0 {.#Item tags_0} index]}]))) -... (|> {.#Item tags_1} -... list.enumeration -... (list#each (function (_ [index short]) -... [short {.#Slot [true type_1 {.#Item tags_1} index]}]))))) -... .#imports (list) -... .#module_state {.#Active}]]) -... .#scopes (list) -... .#type_context [.#ex_counter 0 -... .#var_counter 0 -... .#var_bindings (list)] -... .#expected {.#None} -... .#seed 0 -... .#scope_type_vars (list) -... .#extensions [] -... .#eval (as (-> Type Code (Meta Any)) []) -... .#host []])]] -... (all _.and -... (_.coverage [/.tag_lists] -... (let [equivalence (list.equivalence -... (product.equivalence -... (list.equivalence symbol.equivalence) -... type.equivalence))] -... (|> (/.tag_lists label_module) -... (/.result expected_lux) -... (try#each (of equivalence = (list [(list#each (|>> [label_module]) {.#Item tags_0}) -... type_0] -... [(list#each (|>> [label_module]) {.#Item tags_1}) -... type_1]))) -... (try.else false)))) -... (_.coverage [/.tags_of] -... (|> (/.tags_of [label_module name_1]) -... (/.result expected_lux) -... (try#each (of (maybe.equivalence (list.equivalence symbol.equivalence)) = {.#Some (list#each (|>> [label_module]) {.#Item tags_1})})) -... (try.else false))) -... ... (_.coverage [/.tag] -... ... (|> {.#Item tags_0} -... ... list.enumeration -... ... (list.every? (function (_ [expected_index label]) -... ... (|> [label_module label] -... ... /.tag -... ... (/.result expected_lux) -... ... (!expect (^.multi {try.#Success [actual_index actual_tags actual_type]} -... ... (let [correct_index! -... ... (n.= expected_index -... ... actual_index) + expected_lux + (is Lux + [.#info [.#target "" + .#version "" + .#mode {.#Build} + .#configuration (list)] + .#source [location.dummy 0 ""] + .#location location.dummy + .#current_module {.#Some current_module} + .#modules (list [current_module + [.#module_hash 0 + .#module_aliases (list) + .#definitions (list) + .#imports (list label_module) + .#module_state {.#Active}]] + [label_module + [.#module_hash 0 + .#module_aliases (list) + .#definitions (list.partial [name_0 [true {.#Definition [.Type type_0]}]] + ... [name_1 {.#Type [true type_1 {.#Right tags_1}]}] + (all list#composite + (let [cohort (is (List Symbol) + (list#each (|>> [label_module]) + {.#Item tags_0})) + last (-- (list.size cohort)) + right? (n.= last)] + (|> {.#Item tags_0} + list.enumeration + (list#each (function (_ [index short]) + [short [true {.#Definition [.Tag + (|> [{.#Some [index (right? index) cohort]} type_0] + (is Label) + (as Tag))]}]])))) + ... (|> {.#Item tags_1} + ... list.enumeration + ... (list#each (function (_ [index short]) + ... [short {.#Slot [true type_1 {.#Item tags_1} index]}]))) + )) + .#imports (list) + .#module_state {.#Active}]]) + .#scopes (list) + .#type_context [.#ex_counter 0 + .#var_counter 0 + .#var_bindings (list)] + .#expected {.#None} + .#seed 0 + .#scope_type_vars (list) + .#extensions [] + .#eval (as (-> Type Code (Meta Any)) []) + .#host []])]] + (all _.and + (_.coverage [/.tag_lists] + (let [equivalence (list.equivalence + (product.equivalence + (list.equivalence symbol.equivalence) + type.equivalence))] + (|> (/.tag_lists label_module) + (/.result expected_lux) + (try#each (of equivalence = (list [(list#each (|>> [label_module]) {.#Item tags_0}) + type_0] + ... [(list#each (|>> [label_module]) {.#Item tags_1}) + ... type_1] + ))) + (try.else false)))) + ... (_.coverage [/.tags_of] + ... (|> (/.tags_of [label_module name_1]) + ... (/.result expected_lux) + ... (try#each (of (maybe.equivalence (list.equivalence symbol.equivalence)) = {.#Some (list#each (|>> [label_module]) {.#Item tags_1})})) + ... (try.else false))) + ... (_.coverage [/.tag] + ... (|> {.#Item tags_0} + ... list.enumeration + ... (list.every? (function (_ [expected_index label]) + ... (|> [label_module label] + ... /.tag + ... (/.result expected_lux) + ... (!expect (^.multi {try.#Success [actual_index actual_tags actual_type]} + ... (let [correct_index! + ... (n.= expected_index + ... actual_index) -... ... correct_tags! -... ... (of (list.equivalence symbol.equivalence) = -... ... (list#each (|>> [label_module]) {.#Item tags_0}) -... ... actual_tags) + ... correct_tags! + ... (of (list.equivalence symbol.equivalence) = + ... (list#each (|>> [label_module]) {.#Item tags_0}) + ... actual_tags) -... ... correct_type! -... ... (type#= type_0 -... ... actual_type)] -... ... (and correct_index! -... ... correct_tags! -... ... correct_type!)))) -... ... ))))) -... ... (_.coverage [/.slot] -... ... (|> {.#Item tags_1} -... ... list.enumeration -... ... (list.every? (function (_ [expected_index label]) -... ... (|> [label_module label] -... ... /.slot -... ... (/.result expected_lux) -... ... (!expect (^.multi {try.#Success [actual_index actual_tags actual_type]} -... ... (let [correct_index! -... ... (n.= expected_index -... ... actual_index) + ... correct_type! + ... (type#= type_0 + ... actual_type)] + ... (and correct_index! + ... correct_tags! + ... correct_type!)))) + ... ))))) + ... (_.coverage [/.slot] + ... (|> {.#Item tags_1} + ... list.enumeration + ... (list.every? (function (_ [expected_index label]) + ... (|> [label_module label] + ... /.slot + ... (/.result expected_lux) + ... (!expect (^.multi {try.#Success [actual_index actual_tags actual_type]} + ... (let [correct_index! + ... (n.= expected_index + ... actual_index) -... ... correct_tags! -... ... (of (list.equivalence symbol.equivalence) = -... ... (list#each (|>> [label_module]) {.#Item tags_1}) -... ... actual_tags) + ... correct_tags! + ... (of (list.equivalence symbol.equivalence) = + ... (list#each (|>> [label_module]) {.#Item tags_1}) + ... actual_tags) -... ... correct_type! -... ... (type#= type_1 -... ... actual_type)] -... ... (and correct_index! -... ... correct_tags! -... ... correct_type!)))) -... ... ))))) -... ))) + ... correct_type! + ... (type#= type_1 + ... actual_type)] + ... (and correct_index! + ... correct_tags! + ... correct_type!)))) + ... ))))) + ))) (def injection (Injection Meta) @@ -1030,8 +1040,8 @@ ..definition_related ..search_related ..locals_related - ... (_.for [.Label] - ... ..label_related) + (_.for [.Label] + ..label_related) )) /code.test |