diff options
| author | Masaya Tojo <masaya@tojo.tokyo> | 2024-06-16 15:31:16 +0900 | 
|---|---|---|
| committer | Masaya Tojo <masaya@tojo.tokyo> | 2024-06-16 15:31:16 +0900 | 
| commit | dbc3a7c5d41a7b392cdcd51a90f3a419dbaed179 (patch) | |
| tree | fc32373818007b95e5f89a35aa5530db1cc12809 /tests | |
| parent | c2f4dde340185a4b42beacd46355f94ae41e25e4 (diff) | |
Add number (product, sum) implementations
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/run.scm | 88 | 
1 files changed, 54 insertions, 34 deletions
| diff --git a/tests/run.scm b/tests/run.scm index bcebd31..adf0fc6 100644 --- a/tests/run.scm +++ b/tests/run.scm @@ -25,6 +25,22 @@  (test 5 (mod7:<> 3 4)) +(test-begin "number.product") + +(import (prefix (algebraic-structures number product semigroup) product:)) + +(test 12 (product:<> 3 4)) + +(test-end "number.product") + +(test-begin "number.sum") + +(import (prefix (algebraic-structures number sum semigroup) sum:)) + +(test 7 (sum:<> 3 4)) + +(test-end "number.sum") +  (test-begin "list")  (import (prefix (algebraic-structures list semigroup) list:)) @@ -66,6 +82,22 @@  (test 1 mod7:unit) +(test-begin "number.product") + +(import (prefix (algebraic-structures number product monoid) product:)) + +(test 1 (begin product:unit)) + +(test-end "number.product") + +(test-begin "number.sum") + +(import (prefix (algebraic-structures number sum monoid) sum:)) + +(test 0 (begin sum:unit)) + +(test-end "number.sum") +  (test-begin "list")  (import (prefix (algebraic-structures list monoid) list:)) @@ -123,6 +155,26 @@  (test (mod7:inv 4) (mod7:pow 4 -1)) +(test-begin "number.product") + +(import (prefix (algebraic-structures number product group) product:)) + +(test 1/2 (product:inv 2)) +(test 8 (product:pow 2 3)) +(test 1/8 (product:pow 2 -3)) + +(test-end "number.product") + +(test-begin "number.sum") + +(import (prefix (algebraic-structures number sum group) sum:)) + +(test -2 (sum:inv 2)) +(test 6 (sum:pow 2 3)) +(test -6 (sum:pow 2 -3)) + +(test-end "number.sum") +  (test-end "group")  (test-begin "foldable") @@ -242,18 +294,9 @@  (test-begin "semigroup.reducible") -(module (sum semigroup) = (algebraic-structures semigroup) -  (import scheme -          (chicken base) -          (chicken module)) -  (export <>) - -  (define (<> x y) -    (+ x y))) -  (import (algebraic-structures semigroup reduce))  (module (sum reduce) = ((algebraic-structures semigroup reduce) -                        (sum semigroup) +                        (algebraic-structures number sum semigroup)                          (algebraic-structures list reducible)))  (import (prefix (sum reduce) sum:)) @@ -264,34 +307,11 @@  (test-begin "monoid.fold") -(module (product semigroup) = (algebraic-structures semigroup) -  (import scheme -          (chicken base) -          (chicken module)) -  (export <>) - -  (define (<> x y) -    (assert (number? x)) -    (assert (not (zero? x))) -    (assert (number? y)) -    (assert (not (zero? y))) -    (* x y))) - -(module (product monoid) = (algebraic-structures monoid) -  (import scheme -          (chicken base) -          (chicken module)) -  (reexport (product semigroup)) -  (export unit) - -  (define unit 1)) -  (import (algebraic-structures monoid fold))  (module (product fold) = ((algebraic-structures monoid fold) -                          (product monoid) +                          (algebraic-structures number product monoid)                            (algebraic-structures list foldable))) -(import (prefix (product monoid) product:))  (import (prefix (product fold) product:))  (test 1 (product:fold '())) | 
