packages feed

egison-4.1.3: test/lib/core/order.egi

assertEqual "compare" (compare 10 10) Equal
assertEqual "compare" (compare 11 10) Greater
assertEqual "compare" (compare 10 11) Less

assertEqual "compareC" (compareC [1, 2] [1]) Greater
assertEqual "compareC" (compareC [1] [1, 2]) Less
assertEqual "compareC" (compareC [1, 2] [1, 3]) Less
assertEqual "compareC" (compareC [1, 3] [1, 3]) Equal

assertEqual "min" (min 20 5) 5
assertEqual "max" (max 5 30) 30

assertEqual "min/fn" (min/fn compare [10, 20, 5, 20, 30]) 5
assertEqual "max/fn" (max/fn compare [10, 20, 5, 20, 30]) 30

assertEqual "minimum" (minimum [20, 5, 12]) 5
assertEqual "maximum" (maximum [5, 30, 23]) 30

assertEqual "splitByOrdering"
  (splitByOrdering 2 [1, 2, 3, 2, 3, 4, 5])
  ([1], [2, 2], [3, 3, 4, 5])

assertEqual "splitByOrdering/fn"
  (splitByOrdering/fn (\_ _ -> Equal) 2 [1, 2, 3, 4, 5])
  ([], [1, 2, 3, 4, 5], [])

assertEqual "sort"
  (sort [10, 20, 5, 20, 30])
  [5, 10, 20, 20, 30]

assertEqual "sort/fn"
  (sort/fn
    (\x y -> match compare x y as ordering with
             | greater -> Less
             | less -> Greater
             | equal -> Equal)
    [10, 20, 5, 20, 30])
  [30, 20, 20, 10, 5]

assertEqual "sortStrings"
  (sortStrings ["banana", "apple", "chocolate"])
  ["apple", "banana", "chocolate"]

assertEqual "minimize"
  (minimize S.length ["banana", "apple", "chocolate"])
  "apple"

assertEqual "maximize"
  (maximize S.length ["banana", "apple", "chocolate"])
  "chocolate"