Skip to content

Commit 305f096

Browse files
authored
Merge pull request #1770 from certik/uint3
Add a test for all unsigned types
2 parents 9d965a8 + eb5a906 commit 305f096

File tree

2 files changed

+82
-1
lines changed

2 files changed

+82
-1
lines changed

integration_tests/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,6 @@ RUN(NAME const_03 LABELS cpython llvm c
311311
EXTRAFILES const_03b.c)
312312
RUN(NAME const_04 LABELS cpython llvm c)
313313
RUN(NAME expr_01 LABELS cpython llvm c wasm wasm_x64)
314-
RUN(NAME expr_01u LABELS cpython llvm c)
315314
RUN(NAME expr_02 LABELS cpython llvm c wasm wasm_x64)
316315
RUN(NAME expr_03 LABELS cpython llvm c wasm wasm_x64)
317316
RUN(NAME expr_04 LABELS cpython llvm c wasm)
@@ -327,6 +326,10 @@ RUN(NAME expr_13 LABELS llvm c
327326
EXTRAFILES expr_13b.c)
328327
RUN(NAME expr_14 LABELS cpython llvm c)
329328
RUN(NAME expr_15 LABELS cpython llvm c)
329+
330+
RUN(NAME expr_01u LABELS cpython llvm c)
331+
RUN(NAME expr_02u LABELS cpython llvm c)
332+
330333
RUN(NAME loop_01 LABELS cpython llvm c)
331334
RUN(NAME loop_02 LABELS cpython llvm c wasm wasm_x86 wasm_x64)
332335
RUN(NAME loop_03 LABELS cpython llvm c wasm wasm_x64)

integration_tests/expr_02u.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
from lpython import u8, u16, u32, u64
2+
3+
def add_u8(x: u8, y: u8) -> u8:
4+
return x + y
5+
6+
def add_u16(x: u16, y: u16) -> u16:
7+
return x + y
8+
9+
def add_u32(x: u32, y: u32) -> u32:
10+
return x + y
11+
12+
def add_u64(x: u64, y: u64) -> u64:
13+
return x + y
14+
15+
def and_u8(x: u8, y: u8) -> u8:
16+
return x & y
17+
18+
def and_u16(x: u16, y: u16) -> u16:
19+
return x & y
20+
21+
def and_u32(x: u32, y: u32) -> u32:
22+
return x & y
23+
24+
def and_u64(x: u64, y: u64) -> u64:
25+
return x & y
26+
27+
def main_u8():
28+
x: u8
29+
y: u8
30+
z: u8
31+
x = (u8(2)+u8(3))*u8(5)
32+
y = add_u8(x, u8(2))*u8(2)
33+
z = and_u8(x, y)
34+
assert x == u8(25)
35+
assert y == u8(54)
36+
assert z == u8(16)
37+
38+
def main_u16():
39+
x: u16
40+
y: u16
41+
z: u16
42+
x = (u16(2)+u16(3))*u16(5)
43+
y = add_u16(x, u16(2))*u16(2)
44+
z = and_u16(x, y)
45+
assert x == u16(25)
46+
assert y == u16(54)
47+
assert z == u16(16)
48+
49+
def main_u32():
50+
x: u32
51+
y: u32
52+
z: u32
53+
x = (u32(2)+u32(3))*u32(5)
54+
y = add_u32(x, u32(2))*u32(2)
55+
z = and_u32(x, y)
56+
assert x == u32(25)
57+
assert y == u32(54)
58+
assert z == u32(16)
59+
60+
def main_u64():
61+
x: u64
62+
y: u64
63+
z: u64
64+
x = (u64(2)+u64(3))*u64(5)
65+
y = add_u64(x, u64(2))*u64(2)
66+
z = and_u64(x, y)
67+
assert x == u64(25)
68+
assert y == u64(54)
69+
assert z == u64(16)
70+
71+
main_u8()
72+
main_u16()
73+
main_u32()
74+
main_u64()
75+
76+
# Not implemented yet in LPython:
77+
#if __name__ == "__main__":
78+
# main()

0 commit comments

Comments
 (0)