Files
linguist/samples/Terra/testvector.t
2016-01-28 11:22:27 +07:00

57 lines
986 B
Perl

local S = require "std"
local floatv = S.Vector(int)
terra foo()
var a = floatv.salloc():init()
for i = 0,100 do
a:insert(i)
end
for i = 0,50 do
a:insert(0,i)
end
for i = 0,50 do
a:insert(1,2,i)
end
for i = 0ULL,a:size() do
a(i) = a(i) + 1
end
for i = 0ULL,50 do
@a:insert() = 5
end
var s = 0
for i = 0ULL,a:size() do
s = s + a(i)
end
var z = a:size()
S.assert(a:remove() == 5)
S.assert(a:size() == z - 1)
S.assert(a:remove(0) == 50)
S.assert(a:remove(0) == 50)
S.assert(a:remove(0) == 50)
S.assert(a(1) == 49)
return s
end
assert(foo() == 8875 + 5 *50)
local g = global(int,0)
struct A (S.Object) {
a : int
}
terra A:__destruct()
g = g + self.a
end
assert(S.Vector(int) == S.Vector(int))
terra foo2()
var a = [S.Vector(A)].salloc():init()
for i = 0,50 do
a:insert().a = i
end
end
foo2()
assert(g:get() == 49*50/2)