diff options
Diffstat (limited to 'stdlib/source/test/lux/type.lux')
-rw-r--r-- | stdlib/source/test/lux/type.lux | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/type.lux index 8c135b590..65920eca9 100644 --- a/stdlib/source/test/lux/type.lux +++ b/stdlib/source/test/lux/type.lux @@ -45,27 +45,32 @@ (Random Name) (random.and ..short ..short)) -(def: .public (random parameters) +(def: (random' parameters) (-> Nat (Random Type)) (random.rec (function (_ recur) (let [pairG (random.and recur recur) - quantifiedG (random.and (random\in (list)) recur) un_parameterized (: (Random Type) ($_ random.either - (random\map (|>> #.Primitive) (random.and ..short (random\in (list)))) + (random\map (|>> #.Primitive) (random.and ..short (random.list 0 recur))) + (random\map (|>> #.Primitive) (random.and ..short (random.list 1 recur))) + (random\map (|>> #.Primitive) (random.and ..short (random.list 2 recur))) (random\map (|>> #.Sum) pairG) (random\map (|>> #.Product) pairG) (random\map (|>> #.Function) pairG) - (random\map (|>> #.UnivQ) quantifiedG) - (random\map (|>> #.ExQ) quantifiedG) - (random\map (|>> #.Apply) pairG) - (random\map (|>> #.Named) (random.and ..name recur)) ))] (case parameters 0 un_parameterized - _ (random.either un_parameterized - (random\map (|>> (n.% parameters) #.Parameter) random.nat))))))) + _ (|> random.nat + (random\map (|>> (n.% parameters) #.Parameter)) + (random.either un_parameterized))))))) + +(def: .public (random parameters) + (-> Nat (Random Type)) + ($_ random.either + (random\map (/.univ_q parameters) (random' parameters)) + (random\map (/.ex_q parameters) (random' parameters)) + )) (def: .public test Test @@ -98,7 +103,7 @@ _ #1))) (list.repeated size) - (monad.seq !)) + (monad.all !)) .let [(^open "/\.") /.equivalence (^open "list\.") (list.equivalence /.equivalence)]] (`` ($_ _.and @@ -123,7 +128,7 @@ (case> #.None #1 _ #0)))) (do {! random.monad} [size (|> random.nat (\ ! map (n.% 3))) - members (monad.seq ! (list.repeated size (..random 0))) + members (monad.all ! (list.repeated size (..random 0))) extra (|> (..random 0) (random.only (function (_ type) (case type @@ -144,7 +149,7 @@ (n.= (list.size members) (list.size tparams)))) )) (do {! random.monad} - [size (|> random.nat (\ ! map (|>> (n.% 3) inc))) + [size (|> random.nat (\ ! map (|>> (n.% 3) ++))) body_type (|> (..random 0) (random.only (function (_ type) (case type @@ -170,7 +175,7 @@ (|> body_type (/.ex_q size) /.quantified?))) ))) (do {! random.monad} - [depth (|> random.nat (\ ! map (|>> (n.% 3) inc))) + [depth (|> random.nat (\ ! map (|>> (n.% 3) ++))) element_type (|> (..random 0) (random.only (function (_ type) (case type |