import encoding.utf8 fn test_utf8_util() { // string test src:="ăĂ ôÔ testo 怔"//_\u1E5A\u1E5B<=>\u1F49\u1F41<=>\u0128\u012a\u012c" // len 29 runes, raw 49 bytes src_upper:="ĂĂ ÔÔ TESTO Æ€”"//_\u1E5A\u1E5A<=>\u1F49\u1F49<=>\u0128\u012A\u012C" src_lower:="ăă ôô testo 怔"//_\u1E5B\u1E5B<=>\u1F41\u1F41<=>\u0129\u012B\u012D" upper:=utf8.to_upper(src) lower:=utf8.to_lower(src) assert upper==src_upper assert lower==src_lower // ustring test src1:=src.ustring() upper1:=utf8.u_to_upper(src1) lower1:=utf8.u_to_lower(src1) assert upper1==( src_upper.ustring() ) assert lower1==( src_lower.ustring() ) // test len function assert utf8.len("pippo")==5 assert utf8.len(src)==15 //29 assert src.len==24 //49 // test u_len function assert utf8.u_len(src1)==15 //29 assert utf8.u_len("pippo".ustring())==5 // western punctuation a := '.abc?abcòàè.' assert utf8.is_punct(a,0)==true assert utf8.is_punct('b',0)==false assert utf8.is_uchar_punct(0x002E)==true assert utf8.is_punct(a,4)==true // ? assert utf8.is_punct(a,14)==true // last . assert utf8.is_punct(a,12)==false // è println("OK western") // global punctuation b := '.ĂĂa. ÔÔ TESTO Æ€' assert utf8.is_global_punct(b,0)==true assert utf8.is_global_punct('.',0)==true assert utf8.is_uchar_punct(0x002E)==true assert utf8.is_global_punct(b,6)==true // . assert utf8.is_global_punct(b,1)==false // a // test utility functions assert utf8.get_uchar(b,0)==0x002E }