1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
let substring_inputs =
[
[|
"";
"⟿";
"⟿ቄ";
"⟿ቄş";
"⟿ቄş龟";
"⟿ቄş龟¯";
|];
[|
"";
"ç";
"çe";
"çek";
"çeko";
"çekos";
"çekosl";
"çekoslo";
"çekoslov";
"çekoslova";
"çekoslovak";
"çekoslovaky";
"çekoslovakya";
"çekoslovakyal";
"çekoslovakyala";
"çekoslovakyalaş";
"çekoslovakyalaşt";
"çekoslovakyalaştı";
"çekoslovakyalaştır";
"çekoslovakyalaştıra";
"çekoslovakyalaştıram";
"çekoslovakyalaştırama";
"çekoslovakyalaştıramad";
"çekoslovakyalaştıramadı";
"çekoslovakyalaştıramadık";
"çekoslovakyalaştıramadıkl";
"çekoslovakyalaştıramadıkla";
"çekoslovakyalaştıramadıklar";
"çekoslovakyalaştıramadıkları";
"çekoslovakyalaştıramadıklarım";
"çekoslovakyalaştıramadıklarımı";
"çekoslovakyalaştıramadıklarımız";
"çekoslovakyalaştıramadıklarımızd";
"çekoslovakyalaştıramadıklarımızda";
"çekoslovakyalaştıramadıklarımızdan";
"çekoslovakyalaştıramadıklarımızdanm";
"çekoslovakyalaştıramadıklarımızdanmı";
"çekoslovakyalaştıramadıklarımızdanmıs";
"çekoslovakyalaştıramadıklarımızdanmısı";
"çekoslovakyalaştıramadıklarımızdanmısın";
"çekoslovakyalaştıramadıklarımızdanmısını";
"çekoslovakyalaştıramadıklarımızdanmısınız";
|]
]
let test_substring () =
let test a =
let m = Array.length a - 1 in
let v = a.(m) in
assert(UTF8.length v = m);
for i = 0 to m do
assert(a.(i) = UTF8.substring v 0 i);
done;
for i = 0 to m - 1 do
for j = i to m - 1 do
let u = UTF8.substring v i (j - i + 1) in
UTF8.validate u
done
done
in
List.iter test substring_inputs
let () =
Util.register1 "UTF" "substring" test_substring
|