packages feed

egison-4.0.0: test/lib/core/number.egi

--
-- 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