6f86407f创建于 7月16日历史提交
println("===== v1.2 发行版全面测试 =====");
println("");

// ---- 算术 ----
println("1. 算术:   1+2="+str(1+2)+"  3*4="+str(3*4)+"  10/3="+str(10/3)+"  10%3="+str(10%3));

// ---- int64 ----
println("2. int64:  100000000000000+1="+str(100000000000000+1));

// ---- 字符串 Unicode ----
println("3. Unicode: str_upper(helló)="+str_upper("hélló")+"  str_lower(ПРИВЕТ)="+str_lower("ПРИВЕТ"));

// ---- str_split ----
let p=str_split("a,b,",",");
println("4. split:   len="+str(len(p))+" ["+p[0]+","+p[1]+","+p[2]+"]");

// ---- s[i]=x ----
let s="hello"; s[0]="H"; s[4]=79;
println("5. mutable: "+s);

// ---- 数组 ----
let u=["name":"Alice","age":30]; push(u,"extra");
println("6. array:   name="+u["name"]+" age="+str(u["age"])+" len="+str(len(u)));

// ---- 闭包 ----
func mk(){let n=0;return func(){n=n+1;return n;};}
let c=mk();
println("7. closure: "+str(c())+","+str(c())+","+str(c()));

// ---- 递归 ----
func fact(n){if(n<=1)return 1;return n*fact(n-1);}
println("8. recurse: fact(5)="+str(fact(5)));

// ---- try/throw ----
let caught="no";
try{throw"yes";}catch(e){caught=e;}finally{}
println("9. try:     caught="+caught);

// ---- for-in ----
let arr=["a","b","c"]; let looped="";
for v in arr {looped=looped+v;}
println("10. for-in: "+looped);

// ---- break/continue ----
let bc=0; let i=0; while(i<10){i=i+1; if(i==3)continue; bc=bc+1; if(i==5)break;}
println("11. flow:    bc="+str(bc));

// ---- 文件IO ----
file_write("_test.txt","v1.2");
let fr=file_read("_test.txt");
let fe=file_exists("_test.txt");
println("12. fileIO:  read="+fr+" exists="+str(fe));

// ---- 数学扩充 ----
println("13. math:    sin(0)="+str(math_sin(0))+" cos(0)="+str(math_cos(0))+" pi="+str(math_pi()));

// ---- URL/编码 ----
println("14. url:     enc="+url_encode("a b")+" dec="+url_decode("a%20b"));

// ---- HTML ----
println("15. html:    "+html_escape("<b>&"));

// ---- 格式化 ----
println("16. format:  "+str_format("v{0}.{1}",1,0));

// ---- JSON ----
println("17. json:    "+json_stringify([1,"hi",true]));

// ---- 环境变量 ----
let ev=os_getenv("USERNAME"); if(ev==nil){ev=os_getenv("USER");} if(ev==nil){ev="?";}
println("18. getenv:  "+ev);

// ---- 目录列表 ----
let ls=file_listdir("."); let ls_first="?";
if(len(ls)>0){ls_first=ls[0];}
println("19. listdir: "+ls_first+" (total "+str(len(ls))+")");

// ---- 随机数 ----
let r=rand(1,10);
println("20. rand:    "+str(r));

// ---- 模块 ----
let tl=require("template");
let rendered=tl.render("{{a}}+{{b}}={{c}}",["a":1,"b":2,"c":3]);
println("21. module:  "+rendered);

// ---- delay ----
let t0=clock_ms(); delay(1); let t1=clock_ms(); let ok="FAIL"; if(t1>t0){ok="OK";}
println("22. delay:   "+ok);

println("");
println("===== 全部 22 项通过 =====");