Skip to content

Commit 611127b

Browse files
committed
Avoid the utf8 issue completely
1 parent df4bbf3 commit 611127b

File tree

1 file changed

+45
-45
lines changed

1 file changed

+45
-45
lines changed

tests/yup_core/yup_CharacterFunctions.cpp

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -428,26 +428,26 @@ TEST (CharacterFunctionsGeneralTests, ToUpperCase)
428428
EXPECT_EQ (CharacterFunctions::toUpperCase ('!'), '!');
429429

430430
// Latin-1 Supplement
431-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'à'), L'À');
432-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'é'), L'É');
433-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'ñ'), L'Ñ');
434-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'ÿ'), L'Ÿ');
431+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u00E0'), L'\u00C0'); // à -> À
432+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u00E9'), L'\u00C9'); // é -> É
433+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u00F1'), L'\u00D1'); // ñ -> Ñ
434+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u00FF'), L'\u0178'); // ÿ -> Ÿ
435435

436436
// Latin Extended
437-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'ā'), L'Ā');
438-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'ě'), L'Ě');
439-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'ő'), L'Ő');
437+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u0101'), L'\u0100'); // ā -> Ā
438+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u011B'), L'\u011A'); // ě -> Ě
439+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u0151'), L'\u0150'); // ő -> Ő
440440

441441
// Greek
442-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'α'), L'Α');
443-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'ω'), L'Ω');
442+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u03B1'), L'\u0391'); // α -> Α
443+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u03C9'), L'\u03A9'); // ω -> Ω
444444

445445
// Cyrillic
446-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'а'), L'А');
447-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'я'), L'Я');
446+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u0430'), L'\u0410'); // а -> А
447+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u044F'), L'\u042F'); // я -> Я
448448

449449
// Special case: dotless i
450-
EXPECT_EQ (CharacterFunctions::toUpperCase (L'ı'), L'I');
450+
EXPECT_EQ (CharacterFunctions::toUpperCase (L'\u0131'), L'I'); // ı -> I
451451
}
452452

453453
TEST (CharacterFunctionsGeneralTests, ToLowerCase)
@@ -461,26 +461,26 @@ TEST (CharacterFunctionsGeneralTests, ToLowerCase)
461461
EXPECT_EQ (CharacterFunctions::toLowerCase ('!'), '!');
462462

463463
// Latin-1 Supplement
464-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'À'), L'à');
465-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'É'), L'é');
466-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'Ñ'), L'ñ');
467-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'Ÿ'), L'ÿ');
464+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u00C0'), L'\u00E0'); // À -> à
465+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u00C9'), L'\u00E9'); // É -> é
466+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u00D1'), L'\u00F1'); // Ñ -> ñ
467+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u0178'), L'\u00FF'); // Ÿ -> ÿ
468468

469469
// Latin Extended
470-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'Ā'), L'ā');
471-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'Ě'), L'ě');
472-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'Ő'), L'ő');
470+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u0100'), L'\u0101'); // Ā -> ā
471+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u011A'), L'\u011B'); // Ě -> ě
472+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u0150'), L'\u0151'); // Ő -> ő
473473

474474
// Greek
475-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'Α'), L'α');
476-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'Ω'), L'ω');
475+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u0391'), L'\u03B1'); // Α -> α
476+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u03A9'), L'\u03C9'); // Ω -> ω
477477

478478
// Cyrillic
479-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'А'), L'а');
480-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'Я'), L'я');
479+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u0410'), L'\u0430'); // А -> а
480+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u042F'), L'\u044F'); // Я -> я
481481

482-
// Special case: capital I to dotted i
483-
EXPECT_EQ (CharacterFunctions::toLowerCase (L'İ'), L'i');
482+
// Special case: capital I with dot to lowercase i
483+
EXPECT_EQ (CharacterFunctions::toLowerCase (L'\u0130'), L'i'); // İ -> i
484484
}
485485

486486
TEST (CharacterFunctionsGeneralTests, IsUpperCase)
@@ -494,15 +494,15 @@ TEST (CharacterFunctionsGeneralTests, IsUpperCase)
494494
EXPECT_FALSE (CharacterFunctions::isUpperCase ('!'));
495495

496496
// Extended characters
497-
EXPECT_TRUE (CharacterFunctions::isUpperCase (L'À'));
498-
EXPECT_TRUE (CharacterFunctions::isUpperCase (L'Ñ'));
499-
EXPECT_TRUE (CharacterFunctions::isUpperCase (L'Ω'));
500-
EXPECT_TRUE (CharacterFunctions::isUpperCase (L'Я'));
501-
502-
EXPECT_FALSE (CharacterFunctions::isUpperCase (L'à'));
503-
EXPECT_FALSE (CharacterFunctions::isUpperCase (L'ñ'));
504-
EXPECT_FALSE (CharacterFunctions::isUpperCase (L'ω'));
505-
EXPECT_FALSE (CharacterFunctions::isUpperCase (L'я'));
497+
EXPECT_TRUE (CharacterFunctions::isUpperCase (L'\u00C0')); // À
498+
EXPECT_TRUE (CharacterFunctions::isUpperCase (L'\u00D1')); // Ñ
499+
EXPECT_TRUE (CharacterFunctions::isUpperCase (L'\u03A9')); // Ω
500+
EXPECT_TRUE (CharacterFunctions::isUpperCase (L'\u042F')); // Я
501+
502+
EXPECT_FALSE (CharacterFunctions::isUpperCase (L'\u00E0')); // à
503+
EXPECT_FALSE (CharacterFunctions::isUpperCase (L'\u00F1')); // ñ
504+
EXPECT_FALSE (CharacterFunctions::isUpperCase (L'\u03C9')); // ω
505+
EXPECT_FALSE (CharacterFunctions::isUpperCase (L'\u044F')); // я
506506
}
507507

508508
TEST (CharacterFunctionsGeneralTests, IsLowerCase)
@@ -516,15 +516,15 @@ TEST (CharacterFunctionsGeneralTests, IsLowerCase)
516516
EXPECT_FALSE (CharacterFunctions::isLowerCase ('!'));
517517

518518
// Extended characters
519-
EXPECT_TRUE (CharacterFunctions::isLowerCase (L'à'));
520-
EXPECT_TRUE (CharacterFunctions::isLowerCase (L'ñ'));
521-
EXPECT_TRUE (CharacterFunctions::isLowerCase (L'ω'));
522-
EXPECT_TRUE (CharacterFunctions::isLowerCase (L'я'));
523-
524-
EXPECT_FALSE (CharacterFunctions::isLowerCase (L'À'));
525-
EXPECT_FALSE (CharacterFunctions::isLowerCase (L'Ñ'));
526-
EXPECT_FALSE (CharacterFunctions::isLowerCase (L'Ω'));
527-
EXPECT_FALSE (CharacterFunctions::isLowerCase (L'Я'));
519+
EXPECT_TRUE (CharacterFunctions::isLowerCase (L'\u00E0')); // à
520+
EXPECT_TRUE (CharacterFunctions::isLowerCase (L'\u00F1')); // ñ
521+
EXPECT_TRUE (CharacterFunctions::isLowerCase (L'\u03C9')); // ω
522+
EXPECT_TRUE (CharacterFunctions::isLowerCase (L'\u044F')); // я
523+
524+
EXPECT_FALSE (CharacterFunctions::isLowerCase (L'\u00C0')); // À
525+
EXPECT_FALSE (CharacterFunctions::isLowerCase (L'\u00D1')); // Ñ
526+
EXPECT_FALSE (CharacterFunctions::isLowerCase (L'\u03A9')); // Ω
527+
EXPECT_FALSE (CharacterFunctions::isLowerCase (L'\u042F')); // Я
528528
}
529529

530530
TEST (CharacterFunctionsGeneralTests, IsWhitespace)
@@ -693,7 +693,7 @@ TEST (CharacterFunctionsGeneralTests, GetHexDigitValue)
693693
EXPECT_EQ (CharacterFunctions::getHexDigitValue (L'9'), 9);
694694
EXPECT_EQ (CharacterFunctions::getHexDigitValue (L'a'), 10);
695695
EXPECT_EQ (CharacterFunctions::getHexDigitValue (L'F'), 15);
696-
EXPECT_EQ (CharacterFunctions::getHexDigitValue (L''), -1);
696+
EXPECT_EQ (CharacterFunctions::getHexDigitValue (L'\u20AC'), -1); //
697697
}
698698

699699
TEST (CharacterFunctionsGeneralTests, GetUnicodeCharFromWindows1252Codepage)
@@ -764,7 +764,7 @@ TEST (CharacterFunctionsGeneralTests, CaseConversionConsistency)
764764
}
765765

766766
// Test some extended characters
767-
const yup_wchar testChars[] = { L'à', L'é', L'ñ', L'α', L'ω', L'а', L'я' };
767+
const yup_wchar testChars[] = { L'\u00E0', L'\u00E9', L'\u00F1', L'\u03B1', L'\u03C9', L'\u0430', L'\u044F' }; // à, é, ñ, α, ω, а, я
768768
for (auto c : testChars)
769769
{
770770
auto upper = CharacterFunctions::toUpperCase (c);

0 commit comments

Comments
 (0)