egison-5.0.0: test/lib/core/number.egi
--
-- 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 "findFactor" (findFactor 1) 1
assertEqual "findFactor" (findFactor 35) 5
assertEqual "findFactor" (findFactor 100) 2
assertEqual "pF" (pF 1) []
assertEqual "pF" (pF 3) [3]
assertEqual "pF" (pF 100) [2, 2, 5, 5]
assertEqual "isOdd" (isOdd 3) True
assertEqual "isOdd" (isOdd 4) False
assertEqual "isEven" (isEven 4) True
assertEqual "isEven" (isEven 5) False
assertEqual "isPrime" (isPrime 17) True
assertEqual "isPrime" (isPrime 18) False
assertEqual "perm" (perm 5 2) 20
assertEqual "comb" (comb 5 2) 10
assertEqual "nAdic" (nAdic 10 123) [1, 2, 3]
assertEqual "nAdic" (nAdic 2 10) [1, 0, 1, 0]
assertEqual "rtod" (rtod (6 / 35)) (0, [1], [7, 1, 4, 2, 8, 5])
assertEqual "showDecimal" (showDecimal 10 (6 / 35)) "0.1714285714"
assertEqual "showDecimal'" (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
"regularContinuedFractionOfSqrt case 1"
(regularContinuedFractionOfSqrt 2)
(1, [], [2])
assertEqual
"regularContinuedFractionOfSqrt case 2"
(rtof
(let (x, s, c) := regularContinuedFractionOfSqrt 2
in regularContinuedFraction x (take 100 (s ++ repeat c))))
1.4142135623730951