summaryrefslogtreecommitdiff
path: root/src/3rdparty/squirrel/samples/list.nut
blob: 8ab1ab517b9f7e0b19e206aab4256d0a22fbdd9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*translation of the list test from The Great Computer Language Shootout
*/

function compare_arr(a1,a2)
{
	foreach(i,val in a1)
		if(val!=a2[i])return null;
	return 1;
}

function test()
{
	local size=10000
	local l1=[]; l1.resize(size);
	for(local i=0;i<size;i+=1) l1[i]=i;
	local l2=clone l1;
	local l3=[]

	l2.reverse();
	while(l2.len()>0)
		l3.append(l2.pop());
	while(l3.len()>0)
		l2.append(l3.pop());
	l1.reverse();

	if(compare_arr(l1,l2))
		return l1.len();
	return null;
}

local n = ARGS.len()!=0?ARGS[0].tointeger():1
for(local i=0;i<n;i+=1)
	if(!test())
	{
		print("failed");
		return;
	}

print("oki doki");