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
|
//Test length reporting
text_1bytes_len = "1234";
text_2bytes_len = "ΠΠΠΠ";
text_4bytes_len = "π‘π±ππ";
echo( "text_1bytes_len = ", text_1bytes_len, " len = ", len(text_1bytes_len) );
echo( "text_2bytes_len = ", text_2bytes_len, " len = ", len(text_2bytes_len) );
echo( "text_4bytes_len = ", text_4bytes_len, " len = ", len(text_4bytes_len) );
//Test how well arrays of unicode string are accessed.
texts_array = [
"DEADBEEF",
"ΠΠ΅Π½ΠΈΠ²ΡΠΉ ΡΡΠΆΠΈΠΉ ΠΊΠΎΡ",
"ΩΨ³ΩΩ Ψ§ΩΨ²ΩΨ¬Ψ¨ΩΩ Ψ§ΩΩΨ·",
"ζΆζ°ηε§θ²",
"Àâü ΓΓΓ Γ",
"πππππ
πππππππππππ",
"β β β β β
β β β β β β β β β β ",
"π‘π±ππ",
];
text_2bytes = "ΠΠ΅Π½ΠΈΠ²ΡΠΉ ΡΡΠΆΠΈΠΉ ΠΊΠΎΡ";
text_4bytes = "π‘π±ππ";
//Test all the normal accesses
for (text_array_idx = [0:(len(texts_array)-1)])
{
echo( "[", text_array_idx, "] = ", texts_array[text_array_idx], " of len=", len(texts_array[text_array_idx]), ":" );
for (text_idx = [0:(len(texts_array[text_array_idx])-1)])
{
echo( " [", text_idx, ,"]=", texts_array[text_array_idx][text_idx] );
}
}
//Test one past the last element of (x-byte unicode). This will be one past the length but inside the char length of the string
echo( "Past end of unicode only 2-byte ", text_2bytes[len(text_2bytes)] );
echo( "Past end of unicode only 4-byte ", text_4bytes[len(text_4bytes)] );
//Test past the last element of (x-byte unicode). Outside both lengths.
echo( "Past end of both 2-byte ", text_2bytes[ len(text_2bytes) * 2 ] );
echo( "Past end of both 4-byte ", text_4bytes[ len(text_4bytes) * 4 ] );
|