From c4e6a899592f704f1f47ea07e0785c33ca6d47ad Mon Sep 17 00:00:00 2001 From: Valk Richard Li <48872266+ValKmjolnir@users.noreply.github.com> Date: Sun, 7 Mar 2021 16:33:43 +0800 Subject: [PATCH] update test files and prepare the release of v5.0 --- test/bigloop.nas | 1 + test/calc.nas | 30 +++++++++++++++++++++++ test/fib.nas | 27 ++++++++++++++++++++ test/lexer.nas | 3 +-- test/life.nas | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 test/bigloop.nas create mode 100644 test/calc.nas create mode 100644 test/fib.nas create mode 100644 test/life.nas diff --git a/test/bigloop.nas b/test/bigloop.nas new file mode 100644 index 0000000..a5ea8b3 --- /dev/null +++ b/test/bigloop.nas @@ -0,0 +1 @@ +for(var i=0;i<4000000;i+=1); \ No newline at end of file diff --git a/test/calc.nas b/test/calc.nas new file mode 100644 index 0000000..c779030 --- /dev/null +++ b/test/calc.nas @@ -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=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; +}(); \ No newline at end of file