issue #198 tests for iarray opcodes
parent
e361bd7387
commit
487624cee9
@ -0,0 +1,21 @@
|
||||
f = compiler.load([[
|
||||
local arr: integer[] = table.intarray(10)
|
||||
arr[0] = 10
|
||||
arr[4] = 2
|
||||
arr[11] = 6
|
||||
local sum: integer = 0
|
||||
for i=0,11 do
|
||||
print(arr[i])
|
||||
sum = sum + arr[i]
|
||||
end
|
||||
return sum, arr
|
||||
]]
|
||||
)
|
||||
|
||||
assert(f and type(f) == 'function')
|
||||
local s,arr = f()
|
||||
assert(s == 18)
|
||||
assert(arr[0] == 10)
|
||||
assert(arr[4] == 2)
|
||||
assert(arr[11] == 6)
|
||||
assert(#arr == 11)
|
@ -0,0 +1,30 @@
|
||||
local sieve = compiler.load([[
|
||||
local i: integer, k: integer, prime: integer, count: integer
|
||||
local flags: integer[] = table.intarray(8190)
|
||||
|
||||
for iter=0,100000 do
|
||||
count = 0
|
||||
for i=0,8190 do
|
||||
flags[i] = 1
|
||||
end
|
||||
for i=0,8190 do
|
||||
if flags[i] == 1 then
|
||||
prime = i + i + 3;
|
||||
for k = i + prime, 8190, prime do
|
||||
flags[k] = 0
|
||||
end
|
||||
count = count + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
return count
|
||||
]]
|
||||
)
|
||||
assert(sieve and type(sieve) == 'function')
|
||||
|
||||
local t1 = os.clock()
|
||||
local count = sieve()
|
||||
local t2 = os.clock()
|
||||
print("time taken ", t2-t1)
|
||||
print(count)
|
||||
assert(count == 1899)
|
Loading…
Reference in new issue