-- -- Matcher -- assertEqual "nat's o - case 1" (match 0 as nat with | o -> True | _ -> False) True assertEqual "nat's o - case 2" (match 1 as nat with | o -> True | _ -> False) False assertEqual "nat's s - case 1" (match 10 as nat with | s $n -> n) 9 assertEqual "nat's s - case 2" (match 0 as nat with | s o -> True | _ -> False) False -- -- Sequences -- assertEqual "nats" (take 10 nats) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] assertEqual "nats0" (take 10 nats0) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] assertEqual "odds" (take 10 odds) [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] assertEqual "evens" (take 10 evens) [2, 4, 6, 8, 10, 12, 14, 16, 18, 20] assertEqual "primes" (take 10 primes) [2, 3, 5, 7, 11, 13, 17, 19, 23, 29] -- -- Natural numbers -- assertEqual "divisor" (divisor 10 5) True assertEqual "find-factor" (findFactor 100) 2 assertEqual "p-f" (pF 100) [2, 2, 5, 5] assertEqual "isOdd - case 1" (isOdd 3) True assertEqual "isOdd - case 2" (isOdd 4) False assertEqual "isEven - case 1" (isEven 4) True assertEqual "isEven - case 2" (isEven 5) False assertEqual "isPrime - case 1" (isPrime 17) True assertEqual "isPrime - case 2" (isPrime 18) False assertEqual "perm" (perm 5 2) 20 assertEqual "comb" (comb 5 2) 10 assertEqual "n-adic - case 1" (nAdic 10 123) [1, 2, 3] assertEqual "n-adic - case 2" (nAdic 2 10) [1, 0, 1, 0] assertEqual "rtod" (2#(%1, take 10 %2) (rtod (6 / 35))) (0, [1, 7, 1, 4, 2, 8, 5, 7, 1, 4]) assertEqual "rtod'" (rtod' (6 / 35)) (0, [1], [7, 1, 4, 2, 8, 5]) assertEqual "show-decimal" (showDecimal 10 (6 / 35)) "0.1714285714" assertEqual "show-decimal'" (showDecimal' (6 / 35)) "0.1 714285 ..." assertEqual "regular-continued-fraction sqrt of 2" (rtof (regularContinuedFraction 1 [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])) 1.4142135623730951 assertEqual "regular-continued-fraction pi" (rtof (regularContinuedFraction 3 [7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1, 1, 2, 2, 2, 2, 1, 84, 2, 1, 1, 15, 3, 13])) 3.141592653589793 assertEqual "continued-fraction pi" (rtof (continuedFraction 3 [7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1, 1, 2, 2, 2, 2, 1, 84, 2, 1, 1, 15, 3, 13] [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])) 3.141592653589793 assertEqual "regular-continued-fraction-of-sqrt case 1" (2#(%1, take 10 %2) (regularContinuedFractionOfSqrt 2)) (1, [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]) assertEqual "regular-continued-fraction-of-sqrt case 2" (rtof (regularContinuedFraction (2#(%1, take 100 %2) (regularContinuedFractionOfSqrt 2)))) 1.4142135623730951