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 项通过 =====");