summaryrefslogtreecommitdiff
path: root/dviware/dvisvgm/tests/UnicodeTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/dvisvgm/tests/UnicodeTest.cpp')
-rw-r--r--dviware/dvisvgm/tests/UnicodeTest.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/dviware/dvisvgm/tests/UnicodeTest.cpp b/dviware/dvisvgm/tests/UnicodeTest.cpp
index dc4e77d165..109b63f1ec 100644
--- a/dviware/dvisvgm/tests/UnicodeTest.cpp
+++ b/dviware/dvisvgm/tests/UnicodeTest.cpp
@@ -64,6 +64,40 @@ TEST(UnicodeTest, utf8) {
}
+TEST(UnicodeTest, fromSurrogate1) {
+ EXPECT_EQ(Unicode::fromSurrogate(0xd800dc00), 0x10000u);
+ EXPECT_EQ(Unicode::fromSurrogate(0xd83cdd10), 0x1f110u);
+
+ // invalid surrogates
+ EXPECT_EQ(Unicode::fromSurrogate(0xd7ffdc00), 0u);
+ EXPECT_EQ(Unicode::fromSurrogate(0xdc00dc00), 0u);
+ EXPECT_EQ(Unicode::fromSurrogate(0xd800dbff), 0u);
+ EXPECT_EQ(Unicode::fromSurrogate(0xd800e000), 0u);
+}
+
+
+TEST(UnicodeTest, fromSurrogate2) {
+ EXPECT_EQ(Unicode::fromSurrogate(0xd800, 0xdc00), 0x10000u);
+ EXPECT_EQ(Unicode::fromSurrogate(0xd83c, 0xdd10), 0x1f110u);
+
+ // invalid surrogates
+ EXPECT_EQ(Unicode::fromSurrogate(0xd7ff, 0xdc00), 0u);
+ EXPECT_EQ(Unicode::fromSurrogate(0xdc00, 0xdc00), 0u);
+ EXPECT_EQ(Unicode::fromSurrogate(0xd800, 0xdbff), 0u);
+ EXPECT_EQ(Unicode::fromSurrogate(0xd800, 0xe000), 0u);
+}
+
+
+TEST(UnicodeTest, toSurrogate) {
+ EXPECT_EQ(Unicode::toSurrogate(0x10000), 0xd800dc00u);
+ EXPECT_EQ(Unicode::toSurrogate(0x1f110), 0xd83cdd10u);
+
+ // invalid code points
+ EXPECT_EQ(Unicode::toSurrogate(0xffff), 0u);
+ EXPECT_EQ(Unicode::toSurrogate(0x110000), 0u);
+}
+
+
TEST(UnicodeTest, aglNameToCodepoint1) {
EXPECT_EQ(Unicode::aglNameToCodepoint("does not exist"), 0);
EXPECT_EQ(Unicode::aglNameToCodepoint("Eogonek"), 0x118);