mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
57 lines
986 B
Perl
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) |