From 22b1841664e67eda1ea8e9005119a408b08ffe7a Mon Sep 17 00:00:00 2001 From: ValKmjolnir Date: Mon, 30 Jan 2023 19:13:08 +0800 Subject: [PATCH] :sparkles: update test/ascii-art.nas --- test/ascii-art.nas | 64 +++++++++++++++++++++++++++++++++++++++------- test/datalog.nas | 50 ++++++++++++++++++++---------------- 2 files changed, 83 insertions(+), 31 deletions(-) diff --git a/test/ascii-art.nas b/test/ascii-art.nas index 069032d..40df088 100644 --- a/test/ascii-art.nas +++ b/test/ascii-art.nas @@ -1,4 +1,5 @@ import.stl.padding; +import.stl.process_bar; var char_ttf=[ [" "," "," "," "," "," "], @@ -126,21 +127,66 @@ var curve5=func(line=4){ } var ansi_escape_sequence=func(){ + # decoration for(var i=0;i<10;i+=1) - print(rightpad(i,4),":\e["~i~"mhi\e[0m "); + print("\e["~i~"m",rightpad(i,4),"\e[0m"); print("\n"); - for(var i=30;i<40;i+=1) - print(rightpad(i,4),":\e["~i~"mhi\e[0m "); + + # 8/16 color + for(var i=30;i<38;i+=1) + print("\e["~i~"m ",rightpad(i,4),"\e[0m"); + for(var i=30;i<38;i+=1) + print("\e["~i~";1m ",rightpad(i,4),"\e[0m"); print("\n"); - for(var i=40;i<50;i+=1) - print(rightpad(i,4),":\e["~i~"mhi\e[0m "); + for(var i=40;i<48;i+=1) + print("\e["~i~"m ",rightpad(i,4),"\e[0m"); + for(var i=40;i<48;i+=1) + print("\e["~i~";1m ",rightpad(i,4),"\e[0m"); print("\n"); - for(var i=90;i<100;i+=1) - print(rightpad(i,4),":\e["~i~"mhi\e[0m "); + for(var i=90;i<98;i+=1) + print("\e["~i~"m ",rightpad(i,4),"\e[0m"); + for(var i=90;i<98;i+=1) + print("\e["~i~";1m ",rightpad(i,4),"\e[0m"); print("\n"); - for(var i=100;i<110;i+=1) - print(rightpad(i,4),":\e["~i~"mhi\e[0m "); + for(var i=100;i<108;i+=1) + print("\e["~i~"m ",rightpad(i,4),"\e[0m"); + for(var i=100;i<108;i+=1) + print("\e["~i~";1m ",rightpad(i,4),"\e[0m"); print("\n"); + + # 256 color + for(var i=0;i<16;i+=1) { + for(var j=0;j<16;j+=1) { + var code=str(i*16+j); + print("\e[38;5;"~code~"m ",rightpad(code,4),"\e[0m"); + } + print("\n"); + } + for(var i=0;i<16;i+=1) { + for(var j=0;j<16;j+=1) { + var code=str(i*16+j); + print("\e[48;5;"~code~"m ",rightpad(code,4),"\e[0m"); + } + print("\n"); + } + + # move curser left and up + var bar=process_bar.default_bar("classic3",30); + var progress=[0,0,0,0,0,0,0,0]; + var increase=[0.015,0.03,0.02,0.047,0.04,0.045,0.025,0.016]; + foreach(var i;progress) { + print("\e[1000D",bar.bar(i)," ",rightpad(str(int(i*100)),3)," % \n"); + } + for(var i=0;i<1/0.015;i+=1) { + print("\e[1000D","\e["~str(size(progress))~"A"); + forindex(var j;progress) { + progress[j]+=increase[j]; + progress[j]=progress[j]>1?1:progress[j]; + print("\e[1000D",bar.bar(progress[j])," ",rightpad(str(int(progress[j]*100)),3)," % \n") + } + unix.sleep(0.02); + } + } # enable unicode diff --git a/test/datalog.nas b/test/datalog.nas index 2c4f7e8..46b3f6d 100644 --- a/test/datalog.nas +++ b/test/datalog.nas @@ -1,7 +1,19 @@ import.stl.sort; +import.stl.padding; import.stl.process_bar; -var test=func(n){ +var mess=func(vec) { + srand(); + var s=size(vec); + for(var i=s-1;i>=0;i-=1) { + var r=int(rand()*i); + (vec[r],vec[i])=(vec[i],vec[r]); + } +} + +var equal_join=func(n) { + # color a(int) b(str) c(int) message a(int) b(str) + # color.c = message.a var ts=maketimestamp(); var bar=process_bar.high_resolution_bar(40); @@ -9,55 +21,49 @@ var test=func(n){ var message=[]; setsize(color,n); setsize(message,n); + var last_step=0; ts.stamp(); - for(var i=0;i1/100){ + # generate process bar, every 0.2% + if((i-last_step)/n>1/500) { last_step=i; - print(" ",bar.bar((i+1)/n)~" "~str(int((i+1)/n*100))~"% \r"); - } - } - print(" ",bar.bar((i+1)/n)~" 100% | ",ts.elapsedMSec()/1000," s | "); - - var mess=func(vec){ - var s=size(vec); - for(var i=s-1;i>=0;i-=1){ - var r=int(rand()*i); - (vec[r],vec[i])=(vec[i],vec[r]); + print(" ",bar.bar((i+1)/n)~" \r"); } } + print(" ",bar.bar(1)~" ",rightpad(str(ts.elapsedMSec()/1000),5)," s | "); mess(color); mess(message); - ts.stamp(); sort(color,func(a,b){return a[2]res){ + } else if(data>res) { left=mid+1; - }else{ + } else { right=mid-1; } } } - println(str(cnt)," result(s) in ",ts.elapsedMSec()/1000," sec"); + println(rightpad(str(cnt),7)," in ",ts.elapsedMSec()/1000," s"); } -for(var i=100;i<1e7;i*=10) - test(i); \ No newline at end of file +for(var i=100;i<1e7;i*=10) { + equal_join(i); +} \ No newline at end of file