✨ update test/ascii-art.nas
This commit is contained in:
parent
ac1ee4ddef
commit
22b1841664
|
@ -1,4 +1,5 @@
|
||||||
import.stl.padding;
|
import.stl.padding;
|
||||||
|
import.stl.process_bar;
|
||||||
|
|
||||||
var char_ttf=[
|
var char_ttf=[
|
||||||
[" "," "," "," "," "," "],
|
[" "," "," "," "," "," "],
|
||||||
|
@ -126,21 +127,66 @@ var curve5=func(line=4){
|
||||||
}
|
}
|
||||||
|
|
||||||
var ansi_escape_sequence=func(){
|
var ansi_escape_sequence=func(){
|
||||||
|
# decoration
|
||||||
for(var i=0;i<10;i+=1)
|
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");
|
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");
|
print("\n");
|
||||||
for(var i=40;i<50;i+=1)
|
for(var i=40;i<48;i+=1)
|
||||||
print(rightpad(i,4),":\e["~i~"mhi\e[0m ");
|
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");
|
print("\n");
|
||||||
for(var i=90;i<100;i+=1)
|
for(var i=90;i<98;i+=1)
|
||||||
print(rightpad(i,4),":\e["~i~"mhi\e[0m ");
|
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");
|
print("\n");
|
||||||
for(var i=100;i<110;i+=1)
|
for(var i=100;i<108;i+=1)
|
||||||
print(rightpad(i,4),":\e["~i~"mhi\e[0m ");
|
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");
|
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
|
# enable unicode
|
||||||
|
|
|
@ -1,7 +1,19 @@
|
||||||
import.stl.sort;
|
import.stl.sort;
|
||||||
|
import.stl.padding;
|
||||||
import.stl.process_bar;
|
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 ts=maketimestamp();
|
||||||
var bar=process_bar.high_resolution_bar(40);
|
var bar=process_bar.high_resolution_bar(40);
|
||||||
|
|
||||||
|
@ -9,55 +21,49 @@ var test=func(n){
|
||||||
var message=[];
|
var message=[];
|
||||||
setsize(color,n);
|
setsize(color,n);
|
||||||
setsize(message,n);
|
setsize(message,n);
|
||||||
|
|
||||||
var last_step=0;
|
var last_step=0;
|
||||||
ts.stamp();
|
ts.stamp();
|
||||||
for(var i=0;i<n;i+=1){
|
for(var i=0;i<n;i+=1) {
|
||||||
color[i]=[i,"color "~i,i+n*10];
|
color[i]=[i,"color "~i,i+n*10];
|
||||||
message[i]=[i+n*10,"message "~i];
|
message[i]=[i+n*10,"message "~i];
|
||||||
if((i-last_step)/n>1/100){
|
# generate process bar, every 0.2%
|
||||||
|
if((i-last_step)/n>1/500) {
|
||||||
last_step=i;
|
last_step=i;
|
||||||
print(" ",bar.bar((i+1)/n)~" "~str(int((i+1)/n*100))~"% \r");
|
print(" ",bar.bar((i+1)/n)~" \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(1)~" ",rightpad(str(ts.elapsedMSec()/1000),5)," s | ");
|
||||||
|
|
||||||
mess(color);
|
mess(color);
|
||||||
mess(message);
|
mess(message);
|
||||||
|
|
||||||
|
|
||||||
ts.stamp();
|
ts.stamp();
|
||||||
sort(color,func(a,b){return a[2]<b[2]});
|
sort(color,func(a,b){return a[2]<b[2]});
|
||||||
sort(message,func(a,b){return a[0]<b[0]});
|
sort(message,func(a,b){return a[0]<b[0]});
|
||||||
|
|
||||||
var cnt=0;
|
var cnt=0;
|
||||||
foreach(var c;color){
|
foreach(var c;color) {
|
||||||
var left=0;
|
var left=0;
|
||||||
var right=size(message)-1;
|
var right=size(message)-1;
|
||||||
var data=c[2];
|
var data=c[2];
|
||||||
while(left<=right){
|
while(left<=right) {
|
||||||
var mid=int((left+right)/2);
|
var mid=int((left+right)/2);
|
||||||
var res=message[mid][0];
|
var res=message[mid][0];
|
||||||
if(data==res){
|
if(data==res) {
|
||||||
cnt+=1;
|
cnt+=1;
|
||||||
break;
|
break;
|
||||||
}else if(data>res){
|
} else if(data>res) {
|
||||||
left=mid+1;
|
left=mid+1;
|
||||||
}else{
|
} else {
|
||||||
right=mid-1;
|
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)
|
for(var i=100;i<1e7;i*=10) {
|
||||||
test(i);
|
equal_join(i);
|
||||||
|
}
|
Loading…
Reference in New Issue