/
Ordering.ts
49 lines (44 loc) · 2.04 KB
/
Ordering.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import * as assert from 'assert'
import { sign, eqOrdering, monoidOrdering, invert } from '../src/Ordering'
describe('Ordering', () => {
it('sign', () => {
assert.deepStrictEqual(sign(10), 1)
assert.deepStrictEqual(sign(0), 0)
assert.deepStrictEqual(sign(-10), -1)
})
it('eqOrdering', () => {
assert.deepStrictEqual(eqOrdering.equals(-1, -1), true)
assert.deepStrictEqual(eqOrdering.equals(-1, 0), false)
assert.deepStrictEqual(eqOrdering.equals(-1, 1), false)
assert.deepStrictEqual(eqOrdering.equals(0, -1), false)
assert.deepStrictEqual(eqOrdering.equals(0, 0), true)
assert.deepStrictEqual(eqOrdering.equals(0, 1), false)
assert.deepStrictEqual(eqOrdering.equals(1, -1), false)
assert.deepStrictEqual(eqOrdering.equals(1, 0), false)
assert.deepStrictEqual(eqOrdering.equals(1, 1), true)
})
it('monoidOrdering', () => {
// concat
assert.deepStrictEqual(monoidOrdering.concat(-1, -1), -1)
assert.deepStrictEqual(monoidOrdering.concat(-1, 0), -1)
assert.deepStrictEqual(monoidOrdering.concat(-1, 1), -1)
assert.deepStrictEqual(monoidOrdering.concat(0, -1), -1)
assert.deepStrictEqual(monoidOrdering.concat(0, 0), 0)
assert.deepStrictEqual(monoidOrdering.concat(0, 1), 1)
assert.deepStrictEqual(monoidOrdering.concat(1, -1), 1)
assert.deepStrictEqual(monoidOrdering.concat(1, 0), 1)
assert.deepStrictEqual(monoidOrdering.concat(1, 1), 1)
// empty
assert.deepStrictEqual(monoidOrdering.concat(1, monoidOrdering.empty), 1)
assert.deepStrictEqual(monoidOrdering.concat(monoidOrdering.empty, 1), 1)
assert.deepStrictEqual(monoidOrdering.concat(-1, monoidOrdering.empty), -1)
assert.deepStrictEqual(monoidOrdering.concat(monoidOrdering.empty, -1), -1)
assert.deepStrictEqual(monoidOrdering.concat(0, monoidOrdering.empty), 0)
assert.deepStrictEqual(monoidOrdering.concat(monoidOrdering.empty, 0), 0)
})
it('invert', () => {
assert.deepStrictEqual(invert(-1), 1)
assert.deepStrictEqual(invert(0), 0)
assert.deepStrictEqual(invert(1), -1)
})
})