packages feed

egison-3.9.4: nons-test/test/lib/core/base.egi

--
-- Matchers
--

assert "bool's value pattern"
  (match (True, False) as (bool, bool) with
   | #(True, False) -> True
   | _ -> False)

assert "char's value pattern"
  (match 'a' as char with
   | #'a' -> True
   | _ -> False)

assert "integer's value pattern"
  (match 10 as integer with
   | #10 -> True
   | _ -> False)

assert "float's value pattern"
  (match 0.1 as float with
   | #0.1 -> True
   | _ -> False)

--
-- Utility
--
assertEqual "id" (id 1) 1

assertEqual "fst" (fst (1, 2)) 1

assertEqual "snd" (snd (1, 2)) 2

assertEqual "compose - case 1" ((compose (fst, snd)) ((1, 2), 3)) 2

assertEqual "compose - case 2" ((compose (fst, snd, fst)) ((1, (2, 3)), 4)) 2

-- assertEqual("eq?/m",
--   eq?/m(integer, 1, 1),
--   True)

--
-- Booleans
--
assertEqual "and"
  [True && True, True && False, False && True, False && False]
  [True, False, False, False]

assertEqual "or"
  [True || True, True || False, False || True, False || False]
  [True, True, True, False]

assertEqual "not"
  [not True, not False]
  [False, True]