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
(sort IVec (Vec i64))
; Test vec-of
(check (= (vec-of 1 2) (vec-push (vec-push (vec-empty) 1) 2)))
; Test vec-append
(check (= (vec-append (vec-of 1 2) (vec-of 3 4)) (vec-of 1 2 3 4)))
; Test vec-pop
(check (= (vec-pop (vec-of 1 2 3)) (vec-of 1 2)))
; Test vec-not-contains
(check (vec-not-contains (vec-of 1 2 3) 4))
; Test vec-contains
(check (vec-contains (vec-of 1 2 3) 2))
; Test length
(check (= (vec-length (vec-of 1 2 3)) 3))
; Test vec-get
(check (= (vec-get (vec-of 1 2 3) 1) 2))
; Test vec-set
(check (= (vec-set (vec-of 1 2 3) 1 4) (vec-of 1 4 3)))
; Test rebuilding
(sort X)
(sort VX (Vec X))
(constructor a () X)
(constructor b () X)
(let $p (vec-of (a)))
(let $q (vec-of (b)))
(check (!= $p $q))
(union (a) (b))
(check (= $p $q))