summaryrefslogtreecommitdiff
path: root/testdata/scad/misc/string-unicode.scad
blob: d8e3e5c93e9f51c758ce2be4d1dda4049e2451d0 (plain)
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
//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 ]   );


contact: Jan Huwald // Impressum