diff options
Diffstat (limited to 'stdlib/source/test/lux/math.lux')
| -rw-r--r-- | stdlib/source/test/lux/math.lux | 29 | 
1 files changed, 15 insertions, 14 deletions
diff --git a/stdlib/source/test/lux/math.lux b/stdlib/source/test/lux/math.lux index 46b5171ee..ffe990c50 100644 --- a/stdlib/source/test/lux/math.lux +++ b/stdlib/source/test/lux/math.lux @@ -7,7 +7,8 @@     [data      ["." bit ("#@." equivalence)]      [number -     ["." frac]]]] +     ["." int] +     ["f" frac]]]]    {1     ["." /]}    ["." / #_ @@ -19,8 +20,8 @@  (def: (within? margin-of-error standard value)    (-> Frac Frac Frac Bit) -  (f/< margin-of-error -       (frac.abs (f/- standard value)))) +  (f.< margin-of-error +       (f.abs (f.- standard value))))  (def: margin Frac +0.0000001) @@ -35,7 +36,7 @@        ($_ _.and            (<| (_.context "Trigonometry")                (do r.monad -                [angle (|> r.safe-frac (:: @ map (f/* /.tau)))] +                [angle (|> r.safe-frac (:: @ map (f.* /.tau)))]                  ($_ _.and                      (_.test "Sine and arc-sine are inverse functions."                              (trigonometric-symmetry /.sin /.asin angle)) @@ -46,26 +47,26 @@                      )))            (<| (_.context "Rounding")                (do r.monad -                [sample (|> r.safe-frac (:: @ map (f/* +1000.0)))] +                [sample (|> r.safe-frac (:: @ map (f.* +1000.0)))]                  ($_ _.and                      (_.test "The ceiling will be an integer value, and will be >= the original."                              (let [ceil'd (/.ceil sample)] -                              (and (|> ceil'd frac-to-int int-to-frac (f/= ceil'd)) -                                   (f/>= sample ceil'd) -                                   (f/<= +1.0 (f/- sample ceil'd))))) +                              (and (|> ceil'd f.int int.frac (f.= ceil'd)) +                                   (f.>= sample ceil'd) +                                   (f.<= +1.0 (f.- sample ceil'd)))))                      (_.test "The floor will be an integer value, and will be <= the original."                              (let [floor'd (/.floor sample)] -                              (and (|> floor'd frac-to-int int-to-frac (f/= floor'd)) -                                   (f/<= sample floor'd) -                                   (f/<= +1.0 (f/- floor'd sample))))) +                              (and (|> floor'd f.int int.frac (f.= floor'd)) +                                   (f.<= sample floor'd) +                                   (f.<= +1.0 (f.- floor'd sample)))))                      (_.test "The round will be an integer value, and will be < or > or = the original."                              (let [round'd (/.round sample)] -                              (and (|> round'd frac-to-int int-to-frac (f/= round'd)) -                                   (f/<= +1.0 (frac.abs (f/- sample round'd)))))) +                              (and (|> round'd f.int int.frac (f.= round'd)) +                                   (f.<= +1.0 (f.abs (f.- sample round'd))))))                      )))            (<| (_.context "Exponentials and logarithms")                (do r.monad -                [sample (|> r.safe-frac (:: @ map (f/* +10.0)))] +                [sample (|> r.safe-frac (:: @ map (f.* +10.0)))]                  (_.test "Logarithm is the inverse of exponential."                          (|> sample /.exp /.log (within? +0.000000000000001 sample)))))            (<| (_.context "Greatest-Common-Divisor and Least-Common-Multiple")  | 
