From 565fe5a2e60ff3c6b612031d1c3bb89f330751da Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Thu, 30 Jun 2022 18:15:20 -0400 Subject: Moved ".../dictionary/plist" to ".../list/property". --- stdlib/source/test/lux.lux | 7 +- stdlib/source/test/lux/data/collection.lux | 18 ++-- .../test/lux/data/collection/dictionary/plist.lux | 97 ---------------------- .../test/lux/data/collection/list/property.lux | 97 ++++++++++++++++++++++ stdlib/source/test/lux/macro/local.lux | 9 +- 5 files changed, 116 insertions(+), 112 deletions(-) delete mode 100644 stdlib/source/test/lux/data/collection/dictionary/plist.lux create mode 100644 stdlib/source/test/lux/data/collection/list/property.lux (limited to 'stdlib/source/test') diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux index 7f9d94809..af6864ce3 100644 --- a/stdlib/source/test/lux.lux +++ b/stdlib/source/test/lux.lux @@ -18,10 +18,9 @@ ["[0]" text (.use "[1]#[0]" equivalence) ["%" \\format (.only format)]] [collection - ["[0]" list (.use "[1]#[0]" functor)] ["[0]" set (.only Set) (.use "[1]#[0]" equivalence)] - [dictionary - ["[0]" plist]]]] + ["[0]" list (.use "[1]#[0]" functor) + ["[0]" property]]]] ["[0]" macro (.only) [syntax (.only syntax)] ["^" pattern] @@ -1135,7 +1134,7 @@ (function (_ is? name) (|> captured/2 (the .#mappings) - (plist.value name) + (property.value name) (maybe#each (|>> product.right is?)) (maybe.else false)))) diff --git a/stdlib/source/test/lux/data/collection.lux b/stdlib/source/test/lux/data/collection.lux index 83351d7c1..f1fa1792e 100644 --- a/stdlib/source/test/lux/data/collection.lux +++ b/stdlib/source/test/lux/data/collection.lux @@ -1,17 +1,17 @@ (.require [library - [lux (.except) + [lux (.except list) ["_" test (.only Test)]]] ["[0]" / ["[1][0]" array] ["[1][0]" bits] - ["[1][0]" list] ["[1][0]" sequence] ["[1][0]" stream] ["[1][0]" stack] + ["[1][0]" list (.only) + ["[1]/[0]" property]] ["[1][0]" dictionary (.only) - ["[1]/[0]" ordered] - ["[1]/[0]" plist]] + ["[1]/[0]" ordered]] ["[1][0]" queue (.only) ["[1]/[0]" priority]] ["[1][0]" set (.only) @@ -21,12 +21,18 @@ ["[1]/[0]" finger] ["[1]/[0]" zipper]]]) +(def list + Test + (all _.and + /list.test + /list/property.test + )) + (def dictionary Test (all _.and /dictionary.test /dictionary/ordered.test - /dictionary/plist.test )) (def queue @@ -57,10 +63,10 @@ (all _.and /array.test /bits.test - /list.test /sequence.test /stream.test /stack.test + ..list ..dictionary ..queue ..set diff --git a/stdlib/source/test/lux/data/collection/dictionary/plist.lux b/stdlib/source/test/lux/data/collection/dictionary/plist.lux deleted file mode 100644 index 4b83ece89..000000000 --- a/stdlib/source/test/lux/data/collection/dictionary/plist.lux +++ /dev/null @@ -1,97 +0,0 @@ -(.require - [library - [lux (.except) - ["_" test (.only Test)] - [abstract - [monad (.only do)] - [\\specification - ["$[0]" equivalence] - ["$[0]" monoid]]] - [control - ["[0]" maybe (.use "[1]#[0]" monad)]] - [data - ["[0]" bit (.use "[1]#[0]" equivalence)] - ["[0]" text] - [collection - ["[0]" set] - ["[0]" list]]] - [math - ["[0]" random (.only Random)] - [number - ["n" nat]]]]] - [\\library - ["[0]" /]]) - -(def .public (random size gen_key gen_value) - (All (_ v) - (-> Nat (Random Text) (Random v) (Random (/.PList v)))) - (do random.monad - [keys (random.set text.hash size gen_key) - values (random.list size gen_value)] - (in (list.zipped_2 (set.list keys) values)))) - -(def .public test - Test - (<| (_.covering /._) - (_.for [/.PList]) - (do [! random.monad] - [.let [gen_key (random.alphabetic 10)] - size (at ! each (n.% 100) random.nat) - sample (..random size gen_key random.nat) - - .let [keys (|> sample /.keys (set.of_list text.hash))] - extra_key (random.only (|>> (set.member? keys) not) - gen_key) - extra_value random.nat - shift random.nat] - (all _.and - (_.for [/.equivalence] - ($equivalence.spec (/.equivalence n.equivalence) - (..random size gen_key random.nat))) - (_.for [/.monoid] - ($monoid.spec (/.equivalence n.equivalence) - /.monoid - (..random 10 (random.lower_case 1) random.nat))) - - (_.coverage [/.size] - (n.= size (/.size sample))) - (_.coverage [/.empty?] - (bit#= (n.= 0 (/.size sample)) - (/.empty? sample))) - (_.coverage [/.empty] - (/.empty? /.empty)) - (_.coverage [/.keys /.values] - (at (/.equivalence n.equivalence) = - sample - (list.zipped_2 (/.keys sample) - (/.values sample)))) - (_.coverage [/.contains?] - (and (list.every? (function (_ key) - (/.contains? key sample)) - (/.keys sample)) - (not (/.contains? extra_key sample)))) - (_.coverage [/.has] - (let [sample+ (/.has extra_key extra_value sample)] - (and (not (/.contains? extra_key sample)) - (/.contains? extra_key sample+) - (n.= (++ (/.size sample)) - (/.size sample+))))) - (_.coverage [/.value] - (|> sample - (/.has extra_key extra_value) - (/.value extra_key) - (maybe#each (n.= extra_value)) - (maybe.else false))) - (_.coverage [/.revised] - (|> sample - (/.has extra_key extra_value) - (/.revised extra_key (n.+ shift)) - (/.value extra_key) - (maybe#each (n.= (n.+ shift extra_value))) - (maybe.else false))) - (_.coverage [/.lacks] - (|> sample - (/.has extra_key extra_value) - (/.lacks extra_key) - (at (/.equivalence n.equivalence) = sample))) - )))) diff --git a/stdlib/source/test/lux/data/collection/list/property.lux b/stdlib/source/test/lux/data/collection/list/property.lux new file mode 100644 index 000000000..d8ae753ef --- /dev/null +++ b/stdlib/source/test/lux/data/collection/list/property.lux @@ -0,0 +1,97 @@ +(.require + [library + [lux (.except) + ["_" test (.only Test)] + [abstract + [monad (.only do)] + [\\specification + ["$[0]" equivalence] + ["$[0]" monoid]]] + [control + ["[0]" maybe (.use "[1]#[0]" monad)]] + [data + ["[0]" bit (.use "[1]#[0]" equivalence)] + ["[0]" text] + [collection + ["[0]" set] + ["[0]" list]]] + [math + ["[0]" random (.only Random)] + [number + ["n" nat]]]]] + [\\library + ["[0]" /]]) + +(def .public (random size gen_key gen_value) + (All (_ v) + (-> Nat (Random Text) (Random v) (Random (/.List v)))) + (do random.monad + [keys (random.set text.hash size gen_key) + values (random.list size gen_value)] + (in (list.zipped_2 (set.list keys) values)))) + +(def .public test + Test + (<| (_.covering /._) + (_.for [/.List]) + (do [! random.monad] + [.let [gen_key (random.alphabetic 10)] + size (at ! each (n.% 100) random.nat) + sample (..random size gen_key random.nat) + + .let [keys (|> sample /.keys (set.of_list text.hash))] + extra_key (random.only (|>> (set.member? keys) not) + gen_key) + extra_value random.nat + shift random.nat] + (all _.and + (_.for [/.equivalence] + ($equivalence.spec (/.equivalence n.equivalence) + (..random size gen_key random.nat))) + (_.for [/.monoid] + ($monoid.spec (/.equivalence n.equivalence) + /.monoid + (..random 10 (random.lower_case 1) random.nat))) + + (_.coverage [/.size] + (n.= size (/.size sample))) + (_.coverage [/.empty?] + (bit#= (n.= 0 (/.size sample)) + (/.empty? sample))) + (_.coverage [/.empty] + (/.empty? /.empty)) + (_.coverage [/.keys /.values] + (at (/.equivalence n.equivalence) = + sample + (list.zipped_2 (/.keys sample) + (/.values sample)))) + (_.coverage [/.contains?] + (and (list.every? (function (_ key) + (/.contains? key sample)) + (/.keys sample)) + (not (/.contains? extra_key sample)))) + (_.coverage [/.has] + (let [sample+ (/.has extra_key extra_value sample)] + (and (not (/.contains? extra_key sample)) + (/.contains? extra_key sample+) + (n.= (++ (/.size sample)) + (/.size sample+))))) + (_.coverage [/.value] + (|> sample + (/.has extra_key extra_value) + (/.value extra_key) + (maybe#each (n.= extra_value)) + (maybe.else false))) + (_.coverage [/.revised] + (|> sample + (/.has extra_key extra_value) + (/.revised extra_key (n.+ shift)) + (/.value extra_key) + (maybe#each (n.= (n.+ shift extra_value))) + (maybe.else false))) + (_.coverage [/.lacks] + (|> sample + (/.has extra_key extra_value) + (/.lacks extra_key) + (at (/.equivalence n.equivalence) = sample))) + )))) diff --git a/stdlib/source/test/lux/macro/local.lux b/stdlib/source/test/lux/macro/local.lux index b86a299b8..74d66e29c 100644 --- a/stdlib/source/test/lux/macro/local.lux +++ b/stdlib/source/test/lux/macro/local.lux @@ -13,9 +13,8 @@ [text ["%" \\format]] [collection - ["[0]" list] - [dictionary - ["[0]" plist]]]] + ["[0]" list + ["[0]" property]]]] ["[0]" macro (.only) [syntax (.only syntax)] ["[0]" code (.only) @@ -60,9 +59,9 @@ [module short] (meta.normal name) _ (if pre_remove (let [remove_macro! (is (-> .Module .Module) - (revised .#definitions (plist.lacks short)))] + (revised .#definitions (property.lacks short)))] (function (_ lux) - {try.#Success [(revised .#modules (plist.revised module remove_macro!) lux) + {try.#Success [(revised .#modules (property.revised module remove_macro!) lux) []]})) (in []))] (let [pre_expansion (` (let [(~ g!output) (~ body)] -- cgit v1.2.3