From f81fd718643bfbf81420d3904bfc35d44fa25ed4 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Fri, 27 Jan 2017 05:58:27 -0400 Subject: - Number no longer depends on Ord. --- stdlib/test/test/lux/data/number.lux | 92 +++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 44 deletions(-) (limited to 'stdlib/test') diff --git a/stdlib/test/test/lux/data/number.lux b/stdlib/test/test/lux/data/number.lux index f2645cd2e..6f296a628 100644 --- a/stdlib/test/test/lux/data/number.lux +++ b/stdlib/test/test/lux/data/number.lux @@ -21,13 +21,14 @@ ["Nat" R;nat Eq Ord] ["Int" R;int Eq Ord] ["Real" R;real Eq Ord] - ["Deg" R;deg Eq Ord] + ["Deg" R;deg Eq Ord] ) -(do-template [category rand-gen ] +(do-template [category rand-gen ] [(test: (format "[" category "] " "Number") [x rand-gen - #let [(^open) ]] + #let [(^open) + (^open) ]] (assert "" (and (>= x (abs x)) ## abs(0.0) == 0.0 && negate(abs(0.0)) == -0.0 (or (Text/= "Real" category) @@ -39,15 +40,16 @@ (abs x)))))))] ## ["Nat" R;nat Number] - ["Int" R;int Number] - ["Real" R;real Number] - ["Deg" R;deg Number] + ["Int" R;int Number Ord] + ["Real" R;real Number Ord] + ["Deg" R;deg Number Ord] ) -(do-template [category rand-gen ] +(do-template [category rand-gen ] [(test: (format "[" category "] " "Enum") [x rand-gen] - (assert "" (let [(^open) ] + (assert "" (let [(^open) + (^open) ] (and (> x (:: succ x)) (< x @@ -59,53 +61,55 @@ (|> x (:: succ) (:: pred))) ))))] - ["Nat" R;nat Enum Number] - ["Int" R;int Enum Number] + ["Nat" R;nat Enum Number Ord] + ["Int" R;int Enum Number Ord] ) -(do-template [category rand-gen ] +(do-template [category rand-gen ] [(test: (format "[" category "] " "Interval") [x (|> rand-gen (R;filter )) - #let [(^open) ]] + #let [(^open) + (^open) ]] (assert "" (and (<= x (:: bottom)) (>= x (:: top)))))] - ["Nat" R;nat Number Interval (lambda [_] true)] - ["Int" R;int Number Interval (lambda [_] true)] + ["Nat" R;nat Number Ord Interval (lambda [_] true)] + ["Int" R;int Number Ord Interval (lambda [_] true)] ## Both min and max values will be positive (thus, greater than zero) - ["Real" R;real Number Interval (r.> 0.0)] - ["Deg" R;deg Number Interval (lambda [_] true)] + ["Real" R;real Number Ord Interval (r.> 0.0)] + ["Deg" R;deg Number Ord Interval (lambda [_] true)] ) -(do-template [category rand-gen ] +(do-template [category rand-gen ] [(test: (format "[" category "] " "Monoid") [x (|> rand-gen (:: @ map (|>. (:: abs) )) (R;filter )) #let [(^open) + (^open) (^open) ]] (assert "Appending to unit doesn't change the value." (and (= x (append unit x)) (= x (append x unit)) (= unit (append unit unit)))))] - ["Nat/Add" R;nat Number Add@Monoid (n.% +1000) (lambda [_] true)] - ["Nat/Mul" R;nat Number Mul@Monoid (n.% +1000) (lambda [_] true)] - ["Nat/Min" R;nat Number Min@Monoid (n.% +1000) (lambda [_] true)] - ["Nat/Max" R;nat Number Max@Monoid (n.% +1000) (lambda [_] true)] - ["Int/Add" R;int Number Add@Monoid (i.% 1000) (lambda [_] true)] - ["Int/Mul" R;int Number Mul@Monoid (i.% 1000) (lambda [_] true)] - ["Int/Min" R;int Number Min@Monoid (i.% 1000) (lambda [_] true)] - ["Int/Max" R;int Number Max@Monoid (i.% 1000) (lambda [_] true)] - ["Real/Add" R;real Number Add@Monoid (r.% 1000.0) (r.> 0.0)] - ["Real/Mul" R;real Number Mul@Monoid (r.% 1000.0) (r.> 0.0)] - ["Real/Min" R;real Number Min@Monoid (r.% 1000.0) (r.> 0.0)] - ["Real/Max" R;real Number Max@Monoid (r.% 1000.0) (r.> 0.0)] - ["Deg/Add" R;deg Number Add@Monoid (d.% .125) (lambda [_] true)] - ## ["Deg/Mul" R;deg Number Mul@Monoid (d.% .125) (lambda [_] true)] - ["Deg/Min" R;deg Number Min@Monoid (d.% .125) (lambda [_] true)] - ["Deg/Max" R;deg Number Max@Monoid (d.% .125) (lambda [_] true)] + ["Nat/Add" R;nat Number Ord Add@Monoid (n.% +1000) (lambda [_] true)] + ["Nat/Mul" R;nat Number Ord Mul@Monoid (n.% +1000) (lambda [_] true)] + ["Nat/Min" R;nat Number Ord Min@Monoid (n.% +1000) (lambda [_] true)] + ["Nat/Max" R;nat Number Ord Max@Monoid (n.% +1000) (lambda [_] true)] + ["Int/Add" R;int Number Ord Add@Monoid (i.% 1000) (lambda [_] true)] + ["Int/Mul" R;int Number Ord Mul@Monoid (i.% 1000) (lambda [_] true)] + ["Int/Min" R;int Number Ord Min@Monoid (i.% 1000) (lambda [_] true)] + ["Int/Max" R;int Number Ord Max@Monoid (i.% 1000) (lambda [_] true)] + ["Real/Add" R;real Number Ord Add@Monoid (r.% 1000.0) (r.> 0.0)] + ["Real/Mul" R;real Number Ord Mul@Monoid (r.% 1000.0) (r.> 0.0)] + ["Real/Min" R;real Number Ord Min@Monoid (r.% 1000.0) (r.> 0.0)] + ["Real/Max" R;real Number Ord Max@Monoid (r.% 1000.0) (r.> 0.0)] + ["Deg/Add" R;deg Number Ord Add@Monoid (d.% .125) (lambda [_] true)] + ## ["Deg/Mul" R;deg Number Ord Mul@Monoid (d.% .125) (lambda [_] true)] + ["Deg/Min" R;deg Number Ord Min@Monoid (d.% .125) (lambda [_] true)] + ["Deg/Max" R;deg Number Ord Max@Monoid (d.% .125) (lambda [_] true)] ) -(do-template [ ] +(do-template [ ] [(test: (format "[" "] " "Codec") [x ] (assert "Can encode/decode values." @@ -113,18 +117,18 @@ (:: encode) (:: decode) (case> (#;Right x') - (:: = x x') + (:: = x x') (#;Left _) false))))] - ["Nat" R;nat Number Codec] - ["Int" R;int Number Codec] - ["Real" R;real Number Codec] - ["Deg" R;deg Number Codec] + ["Nat" R;nat Eq Codec] + ["Int" R;int Eq Codec] + ["Real" R;real Eq Codec] + ["Deg" R;deg Eq Codec] ) -(do-template [ ] +(do-template [ ] [(test: (format "[" "] " "Alternative formats") [x ] (assert "Can encode/decode values." @@ -132,12 +136,12 @@ (:: encode) (:: decode) (case> (#;Right x') - (:: = x x') + (:: = x x') (#;Left _) false))))] - ["Nat/Binary" R;nat Number Binary@Codec] - ["Nat/Octal" R;nat Number Octal@Codec] - ["Nat/Hex" R;nat Number Hex@Codec] + ["Nat/Binary" R;nat Eq Binary@Codec] + ["Nat/Octal" R;nat Eq Octal@Codec] + ["Nat/Hex" R;nat Eq Hex@Codec] ) -- cgit v1.2.3