forked from carp-lang/Carp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
uint32.carp
60 lines (58 loc) · 1.84 KB
/
uint32.carp
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
50
51
52
53
54
55
56
57
58
59
60
(load "Test.carp")
(use Test)
(load "StdInt.carp")
(use Uint32)
(deftest test
(assert-equal test
(from-long 3l)
(+ (from-long 1l) (from-long 2l))
"addition works")
(assert-equal test
(from-long 3l)
(- (from-long 2l) (from-long -1l))
"subtraction works")
(assert-equal test
(from-long -4l)
(* (from-long 2l) (from-long -2l))
"multiplication works")
(assert-equal test
(from-long 2l)
(/ (from-long 5l) (from-long 2l))
"division works")
(assert-equal test
(from-long 2l)
(/ (from-long 5l) (from-long 2l))
"division works")
(assert-equal test
(from-long 8l)
(bit-shift-left (from-long 2l) (from-long 2l))
"shift left works")
(assert-equal test
(from-long 1l)
(bit-shift-right (from-long 4l) (from-long 2l))
"shift right works")
(assert-equal test
(from-long 6l)
(bit-or (from-long 4l) (from-long 2l))
"binary or works")
(assert-equal test
(from-long 2l)
(bit-and (from-long 6l) (from-long 3l))
"binary and works")
(assert-equal test
(from-long 4294967167l)
(bit-not (from-long 128l))
"binary not works")
(assert-equal test
(from-long 5l)
(bit-xor (from-long 6l) (from-long 3l))
"binary xor works")
(assert-equal test
5l
(to-long (from-long 5l))
"conversion works")
(assert-equal test
"Uint32(1)"
&(str (from-long 1l))
"str works")
)