Browse Source

Handling characters 377 to 382.

David Piuva 2 months ago
parent
commit
729fe4c522
2 changed files with 15 additions and 1 deletions
  1. 13 1
      Source/DFPSR/api/stringAPI.cpp
  2. 2 0
      Source/test/tests/StringTest.cpp

+ 13 - 1
Source/DFPSR/api/stringAPI.cpp

@@ -88,7 +88,7 @@ String Printable::toString() const {
 
 Printable::~Printable() {}
 
-// TODO: Handle ʼn (329) and the remaining Unicode characters after Ÿ (376).
+// TODO: Handle ʼn (329) and the remaining Unicode characters after ž (382).
 
 DsrChar dsr::character_upperCase(DsrChar character) {
 	if (U'a' <= character && character <= U'z') { // a (97) to z (122) Ascii
@@ -105,6 +105,12 @@ DsrChar dsr::character_upperCase(DsrChar character) {
 		return character - 1;
 	} else if (U'Ŋ' <= character && character <= U'ŷ') { // Ŋ (330) to ŷ (375)
 		return character & ~DsrChar(1);
+	} else if (character == U'ź') { // ź (378)
+		return U'Ź'; // Ź (377)
+	} else if (character == U'ż') { // ż (380)
+		return U'Ż'; // Ż (379)
+	} else if (character == U'ž') { // ž (382)
+		return U'Ž'; // Ž (381)
 	} else {
 		return character;
 	}
@@ -125,6 +131,12 @@ DsrChar dsr::character_lowerCase(DsrChar character) {
 		return character + 1;
 	} else if (U'Ŋ' <= character && character <= U'ŷ') { // Ŋ (330) to ŷ (375)
 		return character | DsrChar(1);
+	} else if (character == U'Ź') { // Ź (377)
+		return U'ź'; // ź (378)
+	} else if (character == U'Ż') { // Ż (379)
+		return U'ż'; // ż (380)
+	} else if (character == U'Ž') { // Ž (381)
+		return U'ž'; // ž (382)
 	} else {
 		return character;
 	}

+ 2 - 0
Source/test/tests/StringTest.cpp

@@ -191,6 +191,7 @@ START_TEST(String)
 	ASSERT_EQUAL(dsr::string_upperCase(U"āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ ĸ ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶ"), U"ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶ ĸ ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶ");
 	ASSERT_EQUAL(dsr::string_upperCase(U"313 to 328 ĺļľŀłńņň ĹĻĽĿŁŃŅŇ"), U"313 TO 328 ĹĻĽĿŁŃŅŇ ĹĻĽĿŁŃŅŇ");
 	ASSERT_EQUAL(dsr::string_upperCase(U"330 to 375 ŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷ ŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶ"), U"330 TO 375 ŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶ ŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶ");
+	ASSERT_EQUAL(dsr::string_upperCase(U"377 to 382 źżž ŹŻŽ"), U"377 TO 382 ŹŻŽ ŹŻŽ");
 	// Lower case
 	ASSERT_EQUAL(dsr::string_lowerCase(U"a"), U"a");
 	ASSERT_EQUAL(dsr::string_lowerCase(U"aB"), U"ab");
@@ -204,6 +205,7 @@ START_TEST(String)
 	ASSERT_EQUAL(dsr::string_lowerCase(U"āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ ĸ ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶ"), U"āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ ĸ āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķ");
 	ASSERT_EQUAL(dsr::string_lowerCase(U"313 to 328 ĺļľŀłńņň ĹĻĽĿŁŃŅŇ"), U"313 to 328 ĺļľŀłńņň ĺļľŀłńņň");
 	ASSERT_EQUAL(dsr::string_lowerCase(U"330 to 375 ŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷ ŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶ"), U"330 to 375 ŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷ ŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷ");
+	ASSERT_EQUAL(dsr::string_lowerCase(U"377 to 382 źżž ŹŻŽ"), U"377 to 382 źżž źżž");
 	// White space removal by pointing to a section of the original input
 	ASSERT_EQUAL(dsr::string_removeOuterWhiteSpace(U" "), U"");
 	ASSERT_EQUAL(dsr::string_removeOuterWhiteSpace(U"  abc  "), U"abc");