BEGIN { $| = 1; print "1..100\n"; } use Unicode::Transform ':ord'; use strict; use warnings; print "ok 1\n"; ##### U+0000, 2..9 print ord_unicode("\x00") == 0 ? "ok" : "not ok", " 2\n"; print ord_utf16le("\x00\x00") == 0 ? "ok" : "not ok", " 3\n"; print ord_utf16be("\x00\x00") == 0 ? "ok" : "not ok", " 4\n"; print ord_utf32le("\0\0\0\0") == 0 ? "ok" : "not ok", " 5\n"; print ord_utf32be("\0\0\0\0") == 0 ? "ok" : "not ok", " 6\n"; print ord_utf8("\x00") == 0 ? "ok" : "not ok", " 7\n"; print ord_utf8mod("\x00") == 0 ? "ok" : "not ok", " 8\n"; print ord_utfcp1047("\x00") == 0 ? "ok" : "not ok", " 9\n"; ##### undef, 10..17 print !defined ord_unicode("") ? "ok" : "not ok", " 10\n"; print !defined ord_utf16le("") ? "ok" : "not ok", " 11\n"; print !defined ord_utf16be("") ? "ok" : "not ok", " 12\n"; print !defined ord_utf32le("") ? "ok" : "not ok", " 13\n"; print !defined ord_utf32be("") ? "ok" : "not ok", " 14\n"; print !defined ord_utf8("") ? "ok" : "not ok", " 15\n"; print !defined ord_utf8mod("") ? "ok" : "not ok", " 16\n"; print !defined ord_utfcp1047("") ? "ok" : "not ok", " 17\n"; ##### U+DFFF, 18..24 print ord_utf16le("\xFF\xDF") == 0xDFFF ? "ok" : "not ok", " 18\n"; print ord_utf16be("\xDF\xFF") == 0xDFFF ? "ok" : "not ok", " 19\n"; print ord_utf32le("\xFF\xDF\0\0") == 0xDFFF ? "ok" : "not ok", " 20\n"; print ord_utf32be("\0\0\xDF\xFF") == 0xDFFF ? "ok" : "not ok", " 21\n"; print ord_utf8("\xED\xBF\xBF") == 0xDFFF ? "ok" : "not ok", " 22\n"; print ord_utf8mod("\xF1\xB7\xBF\xBF") == 0xDFFF ? "ok" : "not ok", " 23\n"; print ord_utfcp1047("\xDD\x66\x73\x73") == 0xDFFF ? "ok" : "not ok", " 24\n"; ##### U+FEFF, 25..32 print ord_unicode("\x{feff}") == 0xFEFF ? "ok" : "not ok", " 25\n"; print ord_utf16le("\xFF\xFE") == 0xFEFF ? "ok" : "not ok", " 26\n"; print ord_utf16be("\xFE\xFF") == 0xFEFF ? "ok" : "not ok", " 27\n"; print ord_utf32le("\xFF\xFE\0\0") == 0xFEFF ? "ok" : "not ok", " 28\n"; print ord_utf32be("\0\0\xFE\xFF") == 0xFEFF ? "ok" : "not ok", " 29\n"; print ord_utf8("\xEF\xBB\xBF") == 0xFEFF ? "ok" : "not ok", " 30\n"; print ord_utf8mod("\xF1\xBF\xB7\xBF") == 0xFEFF ? "ok" : "not ok", " 31\n"; print ord_utfcp1047("\xDD\x73\x66\x73") == 0xFEFF ? "ok" : "not ok", " 32\n"; ##### U+12345, 33..40 print ord_unicode("\x{12345}") == 0x12345 ? "ok" : "not ok", " 33\n"; print ord_utf16le("\x08\xD8\x45\xDF") == 0x12345 ? "ok" : "not ok", " 34\n"; print ord_utf16be("\xD8\x08\xDF\x45") == 0x12345 ? "ok" : "not ok", " 35\n"; print ord_utf32le("\x45\x23\x01\x00") == 0x12345 ? "ok" : "not ok", " 36\n"; print ord_utf32be("\x00\x01\x23\x45") == 0x12345 ? "ok" : "not ok", " 37\n"; print ord_utf8("\xF0\x92\x8D\x85") == 0x12345 ? "ok" : "not ok", " 38\n"; print ord_utf8mod("\xF2\xA8\xBA\xA5") == 0x12345 ? "ok" : "not ok", " 39\n"; print ord_utfcp1047("\xDE\x49\x69\x46") == 0x12345 ? "ok" : "not ok", " 40\n"; ##### U+10FFFF, 41..47 print ord_utf16le("\xFF\xDB\xFF\xDF") == 0x10FFFF ? "ok" : "not ok", " 41\n"; print ord_utf16be("\xDB\xFF\xDF\xFF") == 0x10FFFF ? "ok" : "not ok", " 42\n"; print ord_utf32le("\xFF\xFF\x10\x00") == 0x10FFFF ? "ok" : "not ok", " 43\n"; print ord_utf32be("\x00\x10\xFF\xFF") == 0x10FFFF ? "ok" : "not ok", " 44\n"; print ord_utf8("\xF4\x8F\xBF\xBF") == 0x10FFFF ? "ok" : "not ok", " 45\n"; print ord_utf8mod("\xF9\xA1\xBF\xBF\xBF") == 0x10FFFF ? "ok" : "not ok", " 46\n"; print ord_utfcp1047("\xEE\x42\x73\x73\x73") == 0x10FFFF ? "ok" : "not ok", " 47\n"; ##### misc., 48..58 print ord_unicode("Perl") == 0x50 ? "ok" : "not ok", " 48\n"; print ord_utf8("\x50\x65\x72\x6C") == 0x50 ? "ok" : "not ok", " 49\n"; print ord_utf8("\320\261") == 0x0431 ? "ok" : "not ok", " 50\n"; print ord_utf8("\316\261") == 0x03B1 ? "ok" : "not ok", " 51\n"; print ord_utf8("\327\221") == 0x05D1 ? "ok" : "not ok", " 52\n"; print ord_utf8("\360\220\221\215") == 0x1044D ? "ok" : "not ok", " 53\n"; print ord_utfcp1047("\301") == 0x41 ? "ok" : "not ok", " 54\n"; print ord_utfcp1047("\270\102\130") == 0x0431 ? "ok" : "not ok", " 55\n"; print ord_utfcp1047("\264\130") == 0x03B1 ? "ok" : "not ok", " 56\n"; print ord_utfcp1047("\270\125\130") == 0x05D1 ? "ok" : "not ok", " 57\n"; print ord_utfcp1047("\336\102\103\124") == 0x1044D ? "ok" : "not ok", " 58\n"; ##### U+D800, 59..65 print ord_utf16le("\x00\xD8") == 0xD800 ? "ok" : "not ok", " 59\n"; print ord_utf16be("\xD8\x00") == 0xD800 ? "ok" : "not ok", " 60\n"; print ord_utf32le("\x00\xD8\0\0") == 0xD800 ? "ok" : "not ok", " 61\n"; print ord_utf32be("\0\0\xD8\x00") == 0xD800 ? "ok" : "not ok", " 62\n"; print ord_utf8("\xED\xA0\x80") == 0xD800 ? "ok" : "not ok", " 63\n"; print ord_utf8mod("\xF1\xB6\xA0\xA0") == 0xD800 ? "ok" : "not ok", " 64\n"; print ord_utfcp1047("\xDD\x65\x41\x41") == 0xD800 ? "ok" : "not ok", " 65\n"; ##### U+110000, 66..71 print ord_unicode("\x{110000}") == 0x110000 ? "ok" : "not ok", " 66\n"; print ord_utf32le("\x00\x00\x11\x00") == 0x110000 ? "ok" : "not ok", " 67\n"; print ord_utf32be("\x00\x11\x00\x00") == 0x110000 ? "ok" : "not ok", " 68\n"; print ord_utf8("\xF4\x90\x80\x80") == 0x110000 ? "ok" : "not ok", " 69\n"; print ord_utf8mod("\xF9\xA2\xA0\xA0\xA0") == 0x110000 ? "ok" : "not ok", " 70\n"; print ord_utfcp1047("\xEE\x43\x41\x41\x41") == 0x110000 ? "ok" : "not ok", " 71\n"; ##### unicode 72..74 print ord_unicode("\x{1234567}") == 0x1234567 ? "ok" : "not ok", " 72\n"; print ord_unicode("\x{12345678}") == 0x12345678 ? "ok" : "not ok", " 73\n"; print ord_unicode("\x{7FFFFFFD}") == 0x7FFFFFFD ? "ok" : "not ok", " 74\n"; ##### utf32le 75..77 print ord_utf32le("\x67\x45\x23\x01") == 0x1234567 ? "ok" : "not ok", " 75\n"; print ord_utf32le("\x78\x56\x34\x12") == 0x12345678 ? "ok" : "not ok", " 76\n"; print ord_utf32le("\xFF\xFF\xFF\x7F") == 0x7FFFFFFF ? "ok" : "not ok", " 77\n"; ##### utf32be 78..80 print ord_utf32be("\x01\x23\x45\x67") == 0x1234567 ? "ok" : "not ok", " 78\n"; print ord_utf32be("\x12\x34\x56\x78") == 0x12345678 ? "ok" : "not ok", " 79\n"; print ord_utf32be("\x7F\xFF\xFF\xFF") == 0x7FFFFFFF ? "ok" : "not ok", " 80\n"; ##### utf8 81..90 print ord_utf8("\xF4\xA3\x91\x96") == 0x123456 ? "ok" : "not ok", " 81\n"; print ord_utf8("\xF8\x88\x80\x80\x80") == 0x200000 ? "ok" : "not ok", " 82\n"; print ord_utf8("\xF9\x80\x80\x80\x80") == 0x1000000 ? "ok" : "not ok", " 83\n"; print ord_utf8("\xF9\x88\xB4\x95\xA7") == 0x1234567 ? "ok" : "not ok", " 84\n"; print ord_utf8("\xFB\xBF\xBF\xBF\xBF") == 0x3FFFFFF ? "ok" : "not ok", " 85\n"; print ord_utf8("\xFC\x84\x80\x80\x80\x80") == 0x4000000 ? "ok" : "not ok", " 86\n"; print ord_utf8("\xFC\x8F\xBF\xBF\xBF\xBF") == 0xFFFFFFF ? "ok" : "not ok", " 87\n"; print ord_utf8("\xFC\x90\x80\x80\x80\x80") == 0x10000000 ? "ok" : "not ok", " 88\n"; print ord_utf8("\xFC\x92\x8D\x85\x99\xB8") == 0x12345678 ? "ok" : "not ok", " 89\n"; print ord_utf8("\xFD\xBF\xBF\xBF\xBF\xBF") == 0x7FFFFFFF ? "ok" : "not ok", " 90\n"; ##### utf8mod 91..100 print ord_utf8mod("\xF8\xA8\xA0\xA0\xA0") == 0x40000 ? "ok" : "not ok", " 91\n"; print ord_utf8mod("\xFB\xBF\xBF\xBF\xBF") == 0x3FFFFF ? "ok" : "not ok", " 92\n"; print ord_utf8mod("\xFC\xA4\xA0\xA0\xA0\xA0") == 0x400000 ? "ok" : "not ok", " 93\n"; print ord_utf8mod("\xFC\xB2\xA6\xB1\xAB\xA7") == 0x1234567 ? "ok" : "not ok", " 94\n"; print ord_utf8mod("\xFD\xBF\xBF\xBF\xBF\xBF") == 0x3FFFFFF ? "ok" : "not ok", " 95\n"; print ord_utf8mod("\xFE\xA2\xA0\xA0\xA0\xA0\xA0") == 0x4000000 ? "ok" : "not ok", " 96\n"; print ord_utf8mod("\xFE\xA9\xA3\xA8\xB5\xB3\xB8") == 0x12345678 ? "ok" : "not ok", " 97\n"; print ord_utf8mod("\xFE\xBF\xBF\xBF\xBF\xBF\xBF") == 0x3FFFFFFF ? "ok" : "not ok", " 98\n"; print ord_utf8mod("\xFF\xA0\xA0\xA0\xA0\xA0\xA0") == 0x40000000 ? "ok" : "not ok", " 99\n"; print ord_utf8mod("\xFF\xBF\xBF\xBF\xBF\xBF\xBF") == 0x7FFFFFFF ? "ok" : "not ok", " 100\n";