update test files and prepare the release of v5.0

This commit is contained in:
Valk Richard Li 2021-03-07 16:33:43 +08:00
parent f60f674845
commit c4e6a89959
5 changed files with 123 additions and 2 deletions

1
test/bigloop.nas Normal file
View File

@ -0,0 +1 @@
for(var i=0;i<4000000;i+=1);

30
test/calc.nas Normal file
View File

@ -0,0 +1,30 @@
import("lib.nas");
func(){
var filename=[
"main.cpp",
"nasal_ast.h",
"nasal_builtin.h",
"nasal_codegen.h",
"nasal_gc.h",
"nasal_import.h",
"nasal_lexer.h",
"nasal_parse.h",
"nasal_vm.h",
"nasal.h"
];
var max_size=size('nasal_codegen.h');
var (cnt,semi)=[0,0];
foreach(var file;filename)
{
var s=io.fin(file);
var name=file;
for(var i=size(name);i<max_size;i+=1)
name~=' ';
var line_cnt=size(split('\n',s));
var semi_cnt=size(split(';' ,s))-1;
println(name,'| ',line_cnt,' \tline | ',semi_cnt,' \tsemi');
cnt +=line_cnt;
semi+=semi_cnt;
}
println('total: ',cnt,' line | ',semi,' semi');
}();

27
test/fib.nas Normal file
View File

@ -0,0 +1,27 @@
var print=func(elements...)
{
nasal_call_builtin_std_cout(elements);
return nil;
};
var setsize=func(vector,size)
{
nasal_call_builtin_set_size(vector,size);
return nil;
}
var fib=func(x)
{
if(x<2) return x;
return fib(x-1)+fib(x-2);
}
print(fib(30),'\n');
var m=[0,1,1,2,3,5,8];
setsize(m,101);
var fib=func(n)
{
if(m[n]!=nil) return m[n];
var t=fib(n-1)+fib(n-2);
m[n]=t;
return t;
}
print(fib(100),'\n');

View File

@ -1,7 +1,6 @@
import("lib.nas");
var s=io.fin(input());
s=split('',s);
var s=split('',io.fin(input()));
var len=size(s);
var ptr=0;

64
test/life.nas Normal file
View File

@ -0,0 +1,64 @@
import("lib.nas");
var map=nil;
var check=func(x,y)
{
if(x>=30) x=0;
if(x<0) x=19;
if(y>=40) y=0;
if(y<0) y=39;
return map[x][y];
}
var new_map=func()
{
var tmp=[];
setsize(tmp,30);
forindex(var i;tmp)
{
tmp[i]=[];
setsize(tmp[i],40);
}
return tmp;
}
var prt=func()
{
var s='';
foreach(var line;map)
{
foreach(var elem;line)
s~=elem~' ';
s~='\n';
}
system("cls");
print(s);
}
func()
{
rand(time(0));
map=new_map();
forindex(var i;map)
forindex(var j;map[i])
map[i][j]=rand()>0.7?'O':' ';
var calc=[[0,1],[1,0],[0,-1],[-1,0],[1,1],[1,-1],[-1,-1],[-1,1]];
for(var r=0;r<200;r+=1)
{
prt(map);
var tmp=new_map();
forindex(var i;map)
forindex(var j;map[i])
{
var cnt=0;
foreach(var k;calc)
cnt+=(check(i+k[0],j+k[1])=='O');
if(cnt==2) tmp[i][j]=map[i][j];
elsif(cnt==3) tmp[i][j]='O';
else tmp[i][j]=' ';
}
map=tmp;
}
return;
}();