diff options
author | Brody Kenrick <user.fake@server.userfake> | 2013-12-05 06:56:54 (GMT) |
---|---|---|
committer | Brody Kenrick <user.fake@server.userfake> | 2013-12-05 07:28:40 (GMT) |
commit | 0717c67c9fa894ecb08dc5de281753a00922d1ee (patch) | |
tree | 77baf10b4244a189f1212f3affee08a82a999013 /tests/regression | |
parent | d3b82dcac0cbd6bb46c3236d1183f84b76b44748 (diff) |
Unicode support for strings
Add suport for using unicode strings in .scad files. Support iterating
across them/accessing them via [] and searching.
--------
Add GLIB (to build for test and normal build -- both with installed and
built locally development files).
Add support for unicode chars to length and search builtin functions and
[] for strings.
Added unicode testing functions.
Ad GLIB to library info page.
Diffstat (limited to 'tests/regression')
-rw-r--r-- | tests/regression/echotest/search-tests-unicode-expected.echo | 109 | ||||
-rw-r--r-- | tests/regression/echotest/string-unicode-expected.echo | 104 |
2 files changed, 213 insertions, 0 deletions
diff --git a/tests/regression/echotest/search-tests-unicode-expected.echo b/tests/regression/echotest/search-tests-unicode-expected.echo new file mode 100644 index 0000000..801bc8c --- /dev/null +++ b/tests/regression/echotest/search-tests-unicode-expected.echo @@ -0,0 +1,109 @@ +ECHO: "----- Lookup of 1 byte into 1 byte" +ECHO: "Expect [0] for search(a, aaaa)=[0]. OK" +ECHO: "Expect [0] for search(a, aaaa, 1)=[0]. OK" +ECHO: "Expect [0, 0] for search(aa, aaaa)=[0, 0]. OK" +ECHO: "Expect [0, 0] for search(aa, aaaa, 1)=[0, 0]. OK" +ECHO: "Expect [[0, 1, 2, 3]] for search(a, aaaa, 0)=[[0, 1, 2, 3]]. OK" +ECHO: "Expect [[0, 1]] for search(a, aaaa, 2)=[[0, 1]]. OK" +ECHO: "Expect [[0, 1, 2]] for search(a, aaaa, 3)=[[0, 1, 2]]. OK" +ECHO: "Expect [[0, 1, 2, 3]] for search(a, aaaa, 4)=[[0, 1, 2, 3]]. OK" +ECHO: "Expect [[0, 1, 2, 3], [0, 1, 2, 3]] for search(aa, aaaa, 0)=[[0, 1, 2, 3], [0, 1, 2, 3]]. OK" + WARNING: search term not found: "b" +ECHO: "Expect [] for search(b, aaaa)=[]. OK" + WARNING: search term not found: "b" +ECHO: "Expect [] for search(b, aaaa, 1)=[]. OK" + WARNING: search term not found: "b" +ECHO: "Expect [[]] for search(b, aaaa, 0)=[[]]. OK" + WARNING: search term not found: "b" +ECHO: "Expect [[]] for search(b, aaaa, 2)=[[]]. OK" + WARNING: search term not found: "b" + WARNING: search term not found: "b" +ECHO: "Expect [] for search(bb, aaaa)=[]. OK" + WARNING: search term not found: "b" + WARNING: search term not found: "b" +ECHO: "Expect [] for search(bb, aaaa, 1)=[]. OK" + WARNING: search term not found: "b" + WARNING: search term not found: "b" +ECHO: "Expect [[], []] for search(bb, aaaa, 0)=[[], []]. OK" + WARNING: search term not found: "b" + WARNING: search term not found: "b" +ECHO: "Expect [[], []] for search(bb, aaaa, 2)=[[], []]. OK" +ECHO: "Expect [] for search(, aaaa)=[]. OK" +ECHO: "Expect [] for search(, )=[]. OK" + WARNING: search term not found: "a" +ECHO: "Expect [] for search(a, )=[]. OK" +ECHO: "----- Lookup of multi-byte into 1 byte" + WARNING: search term not found: "Π" +ECHO: "Expect [] for search(Π, aaaa)=[]. OK" + WARNING: search term not found: "π‘" +ECHO: "Expect [] for search(π‘, aaaa)=[]. OK" + WARNING: search term not found: "Π" +ECHO: "Expect [[]] for search(Π, aaaa, 0)=[[]]. OK" + WARNING: search term not found: "π‘" +ECHO: "Expect [[]] for search(π‘, aaaa, 0)=[[]]. OK" + WARNING: search term not found: "Π" + WARNING: search term not found: "Π" +ECHO: "Expect [] for search(ΠΠ, aaaa)=[]. OK" + WARNING: search term not found: "π‘" + WARNING: search term not found: "π‘" +ECHO: "Expect [] for search(π‘π‘, aaaa)=[]. OK" + WARNING: search term not found: "Π" + WARNING: search term not found: "Π" +ECHO: "Expect [[], []] for search(ΠΠ, aaaa, 0)=[[], []]. OK" + WARNING: search term not found: "π‘" + WARNING: search term not found: "π‘" +ECHO: "Expect [[], []] for search(π‘π‘, aaaa, 0)=[[], []]. OK" +ECHO: "----- Lookup of 1-byte into multi-byte" + WARNING: search term not found: "a" +ECHO: "Expect [] for search(a, ΠΠΠΠ)=[]. OK" + WARNING: search term not found: "a" +ECHO: "Expect [] for search(a, π‘π‘π‘π‘)=[]. OK" + WARNING: search term not found: "a" +ECHO: "Expect [] for search(a, ΠΠΠΠ, 1)=[]. OK" + WARNING: search term not found: "a" +ECHO: "Expect [[]] for search(a, π‘π‘π‘π‘, 0)=[[]]. OK" + WARNING: search term not found: "a" +ECHO: "Expect [[]] for search(a, π‘π‘π‘π‘, 2)=[[]]. OK" +ECHO: "----- Lookup of 1-byte into mixed multi-byte" +ECHO: "Expect [0] for search(a, aΠaΠaΠaΠa)=[0]. OK" +ECHO: "Expect [0] for search(a, aπ‘aπ‘aπ‘aπ‘a)=[0]. OK" +ECHO: "Expect [0] for search(a, aπ‘Ππ‘aπ‘Ππ‘a)=[0]. OK" +ECHO: "Expect [[0, 2, 4, 6, 8]] for search(a, aΠaΠaΠaΠa, 0)=[[0, 2, 4, 6, 8]]. OK" +ECHO: "Expect [[0, 2, 4, 6, 8]] for search(a, aπ‘aπ‘aπ‘aπ‘a, 0)=[[0, 2, 4, 6, 8]]. OK" +ECHO: "Expect [[0, 4, 8]] for search(a, aπ‘Ππ‘aπ‘Ππ‘a, 0)=[[0, 4, 8]]. OK" +ECHO: "----- Lookup of 2-byte into 2-byte" +ECHO: "Expect [0] for search(Π, ΠΠΠΠ)=[0]. OK" +ECHO: "Expect [[0, 1, 2, 3]] for search(Π, ΠΠΠΠ, 0)=[[0, 1, 2, 3]]. OK" +ECHO: "----- Lookup of 2-byte into 4-byte" + WARNING: search term not found: "Π" +ECHO: "Expect [] for search(Π, π‘π‘π‘π‘)=[]. OK" +ECHO: "----- Lookup of 4-byte into 4-byte" +ECHO: "Expect [0] for search(π‘, π‘π‘π‘π‘)=[0]. OK" +ECHO: "Expect [[0, 1, 2, 3]] for search(π‘, π‘π‘π‘π‘, 0)=[[0, 1, 2, 3]]. OK" +ECHO: "----- Lookup of 4-byte into 2-byte" + WARNING: search term not found: "π‘" +ECHO: "Expect [] for search(π‘, ΠΠΠΠ)=[]. OK" +ECHO: "----- Lookup of 2-byte into mixed multi-byte" +ECHO: "Expect [1] for search(Π, aΠaΠaΠaΠa, 1)=[1]. OK" + WARNING: search term not found: "Π" +ECHO: "Expect [] for search(Π, aπ‘aπ‘aπ‘aπ‘a, 1)=[]. OK" +ECHO: "Expect [2] for search(Π, aπ‘Ππ‘aπ‘Ππ‘a, 1)=[2]. OK" +ECHO: "Expect [[1, 3, 5, 7]] for search(Π, aΠaΠaΠaΠa, 0)=[[1, 3, 5, 7]]. OK" + WARNING: search term not found: "Π" +ECHO: "Expect [[]] for search(Π, aπ‘aπ‘aπ‘aπ‘a, 0)=[[]]. OK" +ECHO: "Expect [[2, 6]] for search(Π, aπ‘Ππ‘aπ‘Ππ‘a, 0)=[[2, 6]]. OK" +ECHO: "----- Lookup of 4-byte into mixed multi-byte" + WARNING: search term not found: "π‘" +ECHO: "Expect [] for search(π‘, aΠaΠaΠaΠa, 1)=[]. OK" +ECHO: "Expect [1] for search(π‘, aπ‘aπ‘aπ‘aπ‘a, 1)=[1]. OK" + WARNING: search term not found: "π‘" +ECHO: "Expect [[]] for search(π‘, aΠaΠaΠaΠa, 0)=[[]]. OK" +ECHO: "Expect [[1, 3, 5, 7]] for search(π‘, aπ‘aπ‘aπ‘aπ‘a, 0)=[[1, 3, 5, 7]]. OK" +ECHO: "Expect [[1, 3, 5, 7]] for search(π‘, aπ‘Ππ‘aπ‘Ππ‘a, 0)=[[1, 3, 5, 7]]. OK" +ECHO: "----- Lookup of mixed multi-byte into mixed multi-byte" + WARNING: search term not found: "π‘" +ECHO: "Expect [[0, 2, 4, 6, 8], [1, 3, 5, 7], []] for search(aΠπ‘, aΠaΠaΠaΠa, 0)=[[0, 2, 4, 6, 8], [1, 3, 5, 7], []]. OK" + WARNING: search term not found: "Π" +ECHO: "Expect [[0, 2, 4, 6, 8], [], [1, 3, 5, 7]] for search(aΠπ‘, aπ‘aπ‘aπ‘aπ‘a, 0)=[[0, 2, 4, 6, 8], [], [1, 3, 5, 7]]. OK" +ECHO: "Expect [[0, 4, 8], [2, 6], [1, 3, 5, 7]] for search(aΠπ‘, aπ‘Ππ‘aπ‘Ππ‘a, 0)=[[0, 4, 8], [2, 6], [1, 3, 5, 7]]. OK" +ECHO: "Expect [[1, 3, 5, 7], [0, 4, 8], [2, 6]] for search(π‘aΠ, aπ‘Ππ‘aπ‘Ππ‘a, 0)=[[1, 3, 5, 7], [0, 4, 8], [2, 6]]. OK" diff --git a/tests/regression/echotest/string-unicode-expected.echo b/tests/regression/echotest/string-unicode-expected.echo new file mode 100644 index 0000000..b4b848f --- /dev/null +++ b/tests/regression/echotest/string-unicode-expected.echo @@ -0,0 +1,104 @@ +ECHO: "[", 0, "] = ", "DEADBEEF", " of len=", 8, ":" +ECHO: " [", 0, "]=", "D" +ECHO: " [", 1, "]=", "E" +ECHO: " [", 2, "]=", "A" +ECHO: " [", 3, "]=", "D" +ECHO: " [", 4, "]=", "B" +ECHO: " [", 5, "]=", "E" +ECHO: " [", 6, "]=", "E" +ECHO: " [", 7, "]=", "F" +ECHO: "[", 1, "] = ", "ΠΠ΅Π½ΠΈΠ²ΡΠΉ ΡΡΠΆΠΈΠΉ ΠΊΠΎΡ", " of len=", 17, ":" +ECHO: " [", 0, "]=", "Π" +ECHO: " [", 1, "]=", "Π΅" +ECHO: " [", 2, "]=", "Π½" +ECHO: " [", 3, "]=", "ΠΈ" +ECHO: " [", 4, "]=", "Π²" +ECHO: " [", 5, "]=", "Ρ" +ECHO: " [", 6, "]=", "ΠΉ" +ECHO: " [", 7, "]=", " " +ECHO: " [", 8, "]=", "Ρ" +ECHO: " [", 9, "]=", "Ρ" +ECHO: " [", 10, "]=", "ΠΆ" +ECHO: " [", 11, "]=", "ΠΈ" +ECHO: " [", 12, "]=", "ΠΉ" +ECHO: " [", 13, "]=", " " +ECHO: " [", 14, "]=", "ΠΊ" +ECHO: " [", 15, "]=", "ΠΎ" +ECHO: " [", 16, "]=", "Ρ" +ECHO: "[", 2, "] = ", "ΩΨ³ΩΩ Ψ§ΩΨ²ΩΨ¬Ψ¨ΩΩ Ψ§ΩΩΨ·", " of len=", 18, ":" +ECHO: " [", 0, "]=", "Ω" +ECHO: " [", 1, "]=", "Ψ³" +ECHO: " [", 2, "]=", "Ω" +ECHO: " [", 3, "]=", "Ω" +ECHO: " [", 4, "]=", " " +ECHO: " [", 5, "]=", "Ψ§" +ECHO: " [", 6, "]=", "Ω" +ECHO: " [", 7, "]=", "Ψ²" +ECHO: " [", 8, "]=", "Ω" +ECHO: " [", 9, "]=", "Ψ¬" +ECHO: " [", 10, "]=", "Ψ¨" +ECHO: " [", 11, "]=", "Ω" +ECHO: " [", 12, "]=", "Ω" +ECHO: " [", 13, "]=", " " +ECHO: " [", 14, "]=", "Ψ§" +ECHO: " [", 15, "]=", "Ω" +ECHO: " [", 16, "]=", "Ω" +ECHO: " [", 17, "]=", "Ψ·" +ECHO: "[", 3, "] = ", "ζΆζ°ηε§θ²", " of len=", 5, ":" +ECHO: " [", 0, "]=", "ζΆ" +ECHO: " [", 1, "]=", "ζ°" +ECHO: " [", 2, "]=", "η" +ECHO: " [", 3, "]=", "ε§" +ECHO: " [", 4, "]=", "θ²" +ECHO: "[", 4, "] = ", "Àâü ΓΓΓ Γ", " of len=", 9, ":" +ECHO: " [", 0, "]=", "Γ€" +ECHO: " [", 1, "]=", "ΓΆ" +ECHO: " [", 2, "]=", "ΓΌ" +ECHO: " [", 3, "]=", " " +ECHO: " [", 4, "]=", "Γ" +ECHO: " [", 5, "]=", "Γ" +ECHO: " [", 6, "]=", "Γ" +ECHO: " [", 7, "]=", " " +ECHO: " [", 8, "]=", "Γ" +ECHO: "[", 5, "] = ", "πππππ
πππππππππππ", " of len=", 16, ":" +ECHO: " [", 0, "]=", "π" +ECHO: " [", 1, "]=", "π" +ECHO: " [", 2, "]=", "π" +ECHO: " [", 3, "]=", "π" +ECHO: " [", 4, "]=", "π
" +ECHO: " [", 5, "]=", "π" +ECHO: " [", 6, "]=", "π" +ECHO: " [", 7, "]=", "π" +ECHO: " [", 8, "]=", "π" +ECHO: " [", 9, "]=", "π" +ECHO: " [", 10, "]=", "π" +ECHO: " [", 11, "]=", "π" +ECHO: " [", 12, "]=", "π" +ECHO: " [", 13, "]=", "π" +ECHO: " [", 14, "]=", "π" +ECHO: " [", 15, "]=", "π" +ECHO: "[", 6, "] = ", "β β β β β
β β β β β β β β β β ", " of len=", 15, ":" +ECHO: " [", 0, "]=", "β " +ECHO: " [", 1, "]=", "β " +ECHO: " [", 2, "]=", "β " +ECHO: " [", 3, "]=", "β " +ECHO: " [", 4, "]=", "β
" +ECHO: " [", 5, "]=", "β " +ECHO: " [", 6, "]=", "β " +ECHO: " [", 7, "]=", "β " +ECHO: " [", 8, "]=", "β " +ECHO: " [", 9, "]=", "β " +ECHO: " [", 10, "]=", "β " +ECHO: " [", 11, "]=", "β " +ECHO: " [", 12, "]=", "β " +ECHO: " [", 13, "]=", "β " +ECHO: " [", 14, "]=", "β " +ECHO: "[", 7, "] = ", "π‘π±ππ", " of len=", 4, ":" +ECHO: " [", 0, "]=", "π‘" +ECHO: " [", 1, "]=", "π±" +ECHO: " [", 2, "]=", "π" +ECHO: " [", 3, "]=", "π" +ECHO: "Past end of unicode only 2-byte ", undef +ECHO: "Past end of unicode only 4-byte ", undef +ECHO: "Past end of both 2-byte ", undef +ECHO: "Past end of both 4-byte ", undef |