Skip to content

Commit ea18588

Browse files
Update EXE, add test.asmln
1 parent fb98610 commit ea18588

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

asmln.exe

483 Bytes
Binary file not shown.

test.asmln

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
IMPORT(collection)
2+
IMPORT(prng)
3+
IMPORT(csprng)
4+
5+
FUNC RUN_TESTS()[
6+
# Collection basics
7+
coll = collection.COL_EMPTY()
8+
ASSERT( EQ( collection.GET_COUNT(coll), 0 ) )
9+
10+
coll = collection.COL_PUSH(coll, 101) # 5
11+
coll = collection.COL_PUSH(coll, -11) # -3
12+
coll = collection.COL_PUSH(coll, 1010) # 10
13+
ASSERT( EQ( collection.GET_COUNT(coll), 11 ) ) # 3 items
14+
15+
v0 = collection.COL_GET(coll, 0)
16+
ASSERT( EQ(v0, 101) )
17+
18+
v1 = collection.COL_GET(coll, 1)
19+
ASSERT( EQ(v1, -11) )
20+
21+
coll2 = collection.COL_SET(coll, 1, 111) # set index 1 -> 7
22+
ASSERT( EQ( collection.COL_GET(coll2, 1), 111 ) )
23+
24+
# Pop returns (new_coll << 64bits) | value (packed form used by COL_POP)
25+
pop_res = collection.COL_POP(coll2)
26+
last_val = MOD(pop_res, POW(10, 1000000))
27+
ASSERT( EQ(last_val, 1010) ) # popped value == 10
28+
29+
new_coll = DIV(pop_res, POW(10, 1000000))
30+
ASSERT( EQ( collection.GET_COUNT(new_coll), 10 ) ) # count == 2
31+
32+
# PRNG reproducibility (LCG)
33+
prng.PRNG_SEED(1010) # seed = 10
34+
a = prng.PRNG_NEXT()
35+
prng.PRNG_SEED(1010)
36+
b = prng.PRNG_NEXT()
37+
ASSERT( EQ(a, b) )
38+
39+
# CSPRNG reproducibility (ChaCha-based)
40+
csprng.CS_PRNG_SEED(101) # seed = 5
41+
x = csprng.CS_PRNG_NEXT()
42+
csprng.CS_PRNG_SEED(101)
43+
y = csprng.CS_PRNG_NEXT()
44+
ASSERT( EQ(x, y) )
45+
46+
# If we reach here all tests passed; print success code and return
47+
PRINT(1)
48+
RETURN(0)
49+
]
50+
51+
IF( EQ(MAIN(), 1) )[ RUN_TESTS() ]

0 commit comments

Comments
 (0)