Some bug fixes

* Case folding table fixed: lowercase "i without dot" overlaps "i"
* Fixed build of bridge sample in non-Qt case
This commit is contained in:
Matthias Koefferlein 2018-07-13 08:02:48 +02:00
parent abdde4ba19
commit 937fa96245
5 changed files with 148 additions and 141 deletions

View File

@ -44,6 +44,7 @@
#include "pyaRefs.h"
#include "dbPolygon.h"
static PyObject *BridgeError;
static PyObject *

View File

@ -41,8 +41,15 @@ TARGET = bridge_mod
SOURCES = \
bridge_sample.cc
# Include QtCore required for some includes
QT = core
# Depending on whether we have a Qt-less build or not we
# need to include QtCore. Also set -DHAVE_QT
equals(HAVE_QT, "0") {
QT =
} else {
# Include QtCore required for some includes
QT = core
DEFINES += HAVE_QT
}
# Further dependencies include:
# - Python (of course)

View File

@ -1763,4 +1763,3 @@ sprintf (const std::string &f, const std::vector <tl::Variant> &vv, unsigned int
}
}

View File

@ -3197,7 +3197,7 @@ static wchar_t uc_tab_0[] = {
0x0066, // 70 LATIN SMALL LETTER F LATIN CAPITAL LETTER F
0x0067, // 71 LATIN SMALL LETTER G LATIN CAPITAL LETTER G
0x0068, // 72 LATIN SMALL LETTER H LATIN CAPITAL LETTER H
0x0131, // 73 LATIN SMALL LETTER DOTLESS I LATIN CAPITAL LETTER I
0x0069, // 73 LATIN SMALL LETTER I LATIN CAPITAL LETTER I
0x006a, // 74 LATIN SMALL LETTER J LATIN CAPITAL LETTER J
0x006b, // 75 LATIN SMALL LETTER K LATIN CAPITAL LETTER K
0x006c, // 76 LATIN SMALL LETTER L LATIN CAPITAL LETTER L
@ -3385,261 +3385,261 @@ static wchar_t uc_tab_0[] = {
// code page 1
static wchar_t uc_tab_1[] = {
0x0101, // 0 LATIN SMALL LETTER A WITH MACRON LATIN CAPITAL LETTER A WITH MACRON
0x0001, // 1
0x0101, // 1
0x0103, // 2 LATIN SMALL LETTER A WITH BREVE LATIN CAPITAL LETTER A WITH BREVE
0x0003, // 3
0x0103, // 3
0x0105, // 4 LATIN SMALL LETTER A WITH OGONEK LATIN CAPITAL LETTER A WITH OGONEK
0x0005, // 5
0x0105, // 5
0x0107, // 6 LATIN SMALL LETTER C WITH ACUTE LATIN CAPITAL LETTER C WITH ACUTE
0x0007, // 7
0x0107, // 7
0x0109, // 8 LATIN SMALL LETTER C WITH CIRCUMFLEX LATIN CAPITAL LETTER C WITH CIRCUMFLEX
0x0009, // 9
0x0109, // 9
0x010b, // 10 LATIN SMALL LETTER C WITH DOT ABOVE LATIN CAPITAL LETTER C WITH DOT ABOVE
0x000b, // 11
0x010b, // 11
0x010d, // 12 LATIN SMALL LETTER C WITH CARON LATIN CAPITAL LETTER C WITH CARON
0x000d, // 13
0x010d, // 13
0x010f, // 14 LATIN SMALL LETTER D WITH CARON LATIN CAPITAL LETTER D WITH CARON
0x000f, // 15
0x010f, // 15
0x0111, // 16 LATIN SMALL LETTER D WITH STROKE LATIN CAPITAL LETTER D WITH STROKE
0x0011, // 17
0x0111, // 17
0x0113, // 18 LATIN SMALL LETTER E WITH MACRON LATIN CAPITAL LETTER E WITH MACRON
0x0013, // 19
0x0113, // 19
0x0115, // 20 LATIN SMALL LETTER E WITH BREVE LATIN CAPITAL LETTER E WITH BREVE
0x0015, // 21
0x0115, // 21
0x0117, // 22 LATIN SMALL LETTER E WITH DOT ABOVE LATIN CAPITAL LETTER E WITH DOT ABOVE
0x0017, // 23
0x0117, // 23
0x0119, // 24 LATIN SMALL LETTER E WITH OGONEK LATIN CAPITAL LETTER E WITH OGONEK
0x0019, // 25
0x0119, // 25
0x011b, // 26 LATIN SMALL LETTER E WITH CARON LATIN CAPITAL LETTER E WITH CARON
0x001b, // 27
0x011b, // 27
0x011d, // 28 LATIN SMALL LETTER G WITH CIRCUMFLEX LATIN CAPITAL LETTER G WITH CIRCUMFLEX
0x001d, // 29
0x011d, // 29
0x011f, // 30 LATIN SMALL LETTER G WITH BREVE LATIN CAPITAL LETTER G WITH BREVE
0x001f, // 31
0x011f, // 31
0x0121, // 32 LATIN SMALL LETTER G WITH DOT ABOVE LATIN CAPITAL LETTER G WITH DOT ABOVE
0x0021, // 33
0x0121, // 33
0x0123, // 34 LATIN SMALL LETTER G WITH CEDILLA LATIN CAPITAL LETTER G WITH CEDILLA
0x0023, // 35
0x0123, // 35
0x0125, // 36 LATIN SMALL LETTER H WITH CIRCUMFLEX LATIN CAPITAL LETTER H WITH CIRCUMFLEX
0x0025, // 37
0x0125, // 37
0x0127, // 38 LATIN SMALL LETTER H WITH STROKE LATIN CAPITAL LETTER H WITH STROKE
0x0027, // 39
0x0127, // 39
0x0129, // 40 LATIN SMALL LETTER I WITH TILDE LATIN CAPITAL LETTER I WITH TILDE
0x0029, // 41
0x0129, // 41
0x012b, // 42 LATIN SMALL LETTER I WITH MACRON LATIN CAPITAL LETTER I WITH MACRON
0x002b, // 43
0x012b, // 43
0x012d, // 44 LATIN SMALL LETTER I WITH BREVE LATIN CAPITAL LETTER I WITH BREVE
0x002d, // 45
0x012d, // 45
0x012f, // 46 LATIN SMALL LETTER I WITH OGONEK LATIN CAPITAL LETTER I WITH OGONEK
0x002f, // 47
0x0030, // 48
0x0031, // 49
0x012f, // 47
0x0130, // 48
0x0131, // 49
0x0133, // 50 LATIN SMALL LIGATURE IJ LATIN CAPITAL LIGATURE IJ
0x0033, // 51
0x0133, // 51
0x0135, // 52 LATIN SMALL LETTER J WITH CIRCUMFLEX LATIN CAPITAL LETTER J WITH CIRCUMFLEX
0x0035, // 53
0x0135, // 53
0x0137, // 54 LATIN SMALL LETTER K WITH CEDILLA LATIN CAPITAL LETTER K WITH CEDILLA
0x0037, // 55
0x0038, // 56
0x0137, // 55
0x0138, // 56
0x013a, // 57 LATIN SMALL LETTER L WITH ACUTE LATIN CAPITAL LETTER L WITH ACUTE
0x003a, // 58
0x013a, // 58
0x013c, // 59 LATIN SMALL LETTER L WITH CEDILLA LATIN CAPITAL LETTER L WITH CEDILLA
0x003c, // 60
0x013c, // 60
0x013e, // 61 LATIN SMALL LETTER L WITH CARON LATIN CAPITAL LETTER L WITH CARON
0x003e, // 62
0x013e, // 62
0x0140, // 63 LATIN SMALL LETTER L WITH MIDDLE DOT LATIN CAPITAL LETTER L WITH MIDDLE DOT
0x0040, // 64
0x0140, // 64
0x0142, // 65 LATIN SMALL LETTER L WITH STROKE LATIN CAPITAL LETTER L WITH STROKE
0x0042, // 66
0x0142, // 66
0x0144, // 67 LATIN SMALL LETTER N WITH ACUTE LATIN CAPITAL LETTER N WITH ACUTE
0x0044, // 68
0x0144, // 68
0x0146, // 69 LATIN SMALL LETTER N WITH CEDILLA LATIN CAPITAL LETTER N WITH CEDILLA
0x0046, // 70
0x0146, // 70
0x0148, // 71 LATIN SMALL LETTER N WITH CARON LATIN CAPITAL LETTER N WITH CARON
0x0048, // 72
0x0049, // 73
0x0148, // 72
0x0149, // 73
0x014b, // 74 LATIN SMALL LETTER ENG (SAMI) LATIN CAPITAL LETTER ENG (SAMI)
0x004b, // 75
0x014b, // 75
0x014d, // 76 LATIN SMALL LETTER O WITH MACRON LATIN CAPITAL LETTER O WITH MACRON
0x004d, // 77
0x014d, // 77
0x014f, // 78 LATIN SMALL LETTER O WITH BREVE LATIN CAPITAL LETTER O WITH BREVE
0x004f, // 79
0x014f, // 79
0x0151, // 80 LATIN SMALL LETTER O WITH DOUBLE ACUTE LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0x0051, // 81
0x0151, // 81
0x0153, // 82 LATIN SMALL LIGATURE OE LATIN CAPITAL LIGATURE OE
0x0053, // 83
0x0153, // 83
0x0155, // 84 LATIN SMALL LETTER R WITH ACUTE LATIN CAPITAL LETTER R WITH ACUTE
0x0055, // 85
0x0155, // 85
0x0157, // 86 LATIN SMALL LETTER R WITH CEDILLA LATIN CAPITAL LETTER R WITH CEDILLA
0x0057, // 87
0x0157, // 87
0x0159, // 88 LATIN SMALL LETTER R WITH CARON LATIN CAPITAL LETTER R WITH CARON
0x0059, // 89
0x0159, // 89
0x015b, // 90 LATIN SMALL LETTER S WITH ACUTE LATIN CAPITAL LETTER S WITH ACUTE
0x005b, // 91
0x015b, // 91
0x015d, // 92 LATIN SMALL LETTER S WITH CIRCUMFLEX LATIN CAPITAL LETTER S WITH CIRCUMFLEX
0x005d, // 93
0x015d, // 93
0x015f, // 94 LATIN SMALL LETTER S WITH CEDILLA LATIN CAPITAL LETTER S WITH CEDILLA
0x005f, // 95
0x015f, // 95
0x0161, // 96 LATIN SMALL LETTER S WITH CARON LATIN CAPITAL LETTER S WITH CARON
0x0061, // 97
0x0161, // 97
0x0163, // 98 LATIN SMALL LETTER T WITH CEDILLA LATIN CAPITAL LETTER T WITH CEDILLA
0x0063, // 99
0x0163, // 99
0x0165, // 100 LATIN SMALL LETTER T WITH CARON LATIN CAPITAL LETTER T WITH CARON
0x0065, // 101
0x0165, // 101
0x0167, // 102 LATIN SMALL LETTER T WITH STROKE LATIN CAPITAL LETTER T WITH STROKE
0x0067, // 103
0x0167, // 103
0x0169, // 104 LATIN SMALL LETTER U WITH TILDE LATIN CAPITAL LETTER U WITH TILDE
0x0069, // 105
0x0169, // 105
0x016b, // 106 LATIN SMALL LETTER U WITH MACRON LATIN CAPITAL LETTER U WITH MACRON
0x006b, // 107
0x016b, // 107
0x016d, // 108 LATIN SMALL LETTER U WITH BREVE LATIN CAPITAL LETTER U WITH BREVE
0x006d, // 109
0x016d, // 109
0x016f, // 110 LATIN SMALL LETTER U WITH RING ABOVE LATIN CAPITAL LETTER U WITH RING ABOVE
0x006f, // 111
0x016f, // 111
0x0171, // 112 LATIN SMALL LETTER U WITH DOUBLE ACUTE LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0x0071, // 113
0x0171, // 113
0x0173, // 114 LATIN SMALL LETTER U WITH OGONEK LATIN CAPITAL LETTER U WITH OGONEK
0x0073, // 115
0x0173, // 115
0x0175, // 116 LATIN SMALL LETTER W WITH CIRCUMFLEX LATIN CAPITAL LETTER W WITH CIRCUMFLEX
0x0075, // 117
0x0175, // 117
0x0177, // 118 LATIN SMALL LETTER Y WITH CIRCUMFLEX LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0x0077, // 119
0x0177, // 119
0x00ff, // 120 LATIN SMALL LETTER Y DIAERESIS LATIN CAPITAL LETTER Y WITH DIAERESIS
0x017a, // 121 LATIN SMALL LETTER Z WITH ACUTE LATIN CAPITAL LETTER Z WITH ACUTE
0x007a, // 122
0x017a, // 122
0x017c, // 123 LATIN SMALL LETTER Z WITH DOT ABOVE LATIN CAPITAL LETTER Z WITH DOT ABOVE
0x007c, // 124
0x017c, // 124
0x017e, // 125 LATIN SMALL LETTER Z WITH CARON LATIN CAPITAL LETTER Z WITH CARON
0x007e, // 126
0x007f, // 127
0x0080, // 128
0x017e, // 126
0x017f, // 127
0x0180, // 128
0x0253, // 129 LATIN SMALL LETTER B WITH HOOK LATIN CAPITAL LETTER B WITH HOOK
0x0183, // 130 LATIN SMALL LETTER B WITH TOPBAR LATIN CAPITAL LETTER B WITH TOPBAR
0x0083, // 131
0x0183, // 131
0x0185, // 132 LATIN SMALL LETTER TONE SIX LATIN CAPITAL LETTER TONE SIX
0x0085, // 133
0x0185, // 133
0x0254, // 134 LATIN SMALL LETTER OPEN O LATIN CAPITAL LETTER OPEN O
0x0188, // 135 LATIN SMALL LETTER C WITH HOOK LATIN CAPITAL LETTER C WITH HOOK
0x0088, // 136
0x0089, // 137
0x0188, // 136
0x0189, // 137
0x0257, // 138 LATIN SMALL LETTER D WITH HOOK LATIN CAPITAL LETTER D WITH HOOK
0x018c, // 139 LATIN SMALL LETTER D WITH TOPBAR LATIN CAPITAL LETTER D WITH TOPBAR
0x008c, // 140
0x008d, // 141
0x018c, // 140
0x018d, // 141
0x0258, // 142 LATIN SMALL LETTER REVERSED E LATIN CAPITAL LETTER REVERSED E
0x0259, // 143 LATIN SMALL LETTER SCHWA LATIN CAPITAL LETTER SCHWA
0x025b, // 144 LATIN SMALL LETTER OPEN E LATIN CAPITAL LETTER OPEN E
0x0192, // 145 LATIN SMALL LETTER F WITH HOOK LATIN CAPITAL LETTER F WITH HOOK
0x0092, // 146
0x0192, // 146
0x0260, // 147 LATIN SMALL LETTER G WITH HOOK LATIN CAPITAL LETTER G WITH HOOK
0x0263, // 148 LATIN SMALL LETTER GAMMA LATIN CAPITAL LETTER GAMMA
0x0095, // 149
0x0195, // 149
0x0269, // 150 LATIN SMALL LETTER IOTA LATIN CAPITAL LETTER IOTA
0x0268, // 151 LATIN SMALL LETTER I WITH STROKE LATIN CAPITAL LETTER I WITH STROKE
0x0199, // 152 LATIN SMALL LETTER K WITH HOOK LATIN CAPITAL LETTER K WITH HOOK
0x0099, // 153
0x009a, // 154
0x009b, // 155
0x0199, // 153
0x019a, // 154
0x019b, // 155
0x026f, // 156 LATIN SMALL LETTER TURNED M LATIN CAPITAL LETTER TURNED M
0x0272, // 157 LATIN SMALL LETTER N WITH LEFT HOOK LATIN CAPITAL LETTER N WITH LEFT HOOK
0x009e, // 158
0x019e, // 158
0x0275, // 159 LATIN SMALL LETTER BARRED O LATIN CAPITAL LETTER O WITH MIDDLE TILDE
0x01a1, // 160 LATIN SMALL LETTER O WITH HORN LATIN CAPITAL LETTER O WITH HORN
0x00a1, // 161
0x01a1, // 161
0x01a3, // 162 LATIN SMALL LETTER OI LATIN CAPITAL LETTER OI
0x00a3, // 163
0x01a3, // 163
0x01a5, // 164 LATIN SMALL LETTER P WITH HOOK LATIN CAPITAL LETTER P WITH HOOK
0x00a5, // 165
0x00a6, // 166
0x01a5, // 165
0x01a6, // 166
0x01a8, // 167 LATIN SMALL LETTER TONE TWO LATIN CAPITAL LETTER TONE TWO
0x00a8, // 168
0x01a8, // 168
0x0283, // 169 LATIN SMALL LETTER ESH LATIN CAPITAL LETTER ESH
0x00aa, // 170
0x00ab, // 171
0x01aa, // 170
0x01ab, // 171
0x01ad, // 172 LATIN SMALL LETTER T WITH HOOK LATIN CAPITAL LETTER T WITH HOOK
0x00ad, // 173
0x01ad, // 173
0x0288, // 174 LATIN SMALL LETTER T WITH RETROFLEX HOOK LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
0x01b0, // 175 LATIN SMALL LETTER U WITH HORN LATIN CAPITAL LETTER U WITH HORN
0x00b0, // 176
0x01b0, // 176
0x028a, // 177 LATIN SMALL LETTER UPSILON LATIN CAPITAL LETTER UPSILON
0x028b, // 178 LATIN SMALL LETTER V WITH HOOK LATIN CAPITAL LETTER V WITH HOOK
0x01b4, // 179 LATIN SMALL LETTER Y WITH HOOK LATIN CAPITAL LETTER Y WITH HOOK
0x00b4, // 180
0x01b4, // 180
0x01b6, // 181 LATIN SMALL LETTER Z WITH STROKE LATIN CAPITAL LETTER Z WITH STROKE
0x00b6, // 182
0x01b6, // 182
0x0292, // 183 LATIN SMALL LETTER EZH LATIN CAPITAL LETTER EZH
0x01b9, // 184 LATIN SMALL LETTER EZH REVERSED LATIN CAPITAL LETTER EZH REVERSED
0x00b9, // 185
0x00ba, // 186
0x00bb, // 187
0x01b9, // 185
0x01ba, // 186
0x01bb, // 187
0x01bd, // 188 LATIN SMALL LETTER TONE FIVE LATIN CAPITAL LETTER TONE FIVE
0x00bd, // 189
0x00be, // 190
0x00bf, // 191
0x00c0, // 192
0x00c1, // 193
0x00c2, // 194
0x00c3, // 195
0x01bd, // 189
0x01be, // 190
0x01bf, // 191
0x01c0, // 192
0x01c1, // 193
0x01c2, // 194
0x01c3, // 195
0x01c6, // 196 LATIN SMALL LETTER DZ WITH CARON LATIN CAPITAL LETTER DZ WITH CARON
0x00c5, // 197
0x00c6, // 198
0x01c5, // 197
0x01c6, // 198
0x01c9, // 199 LATIN SMALL LETTER LJ LATIN CAPITAL LETTER LJ
0x00c8, // 200
0x00c9, // 201
0x01c8, // 200
0x01c9, // 201
0x01cc, // 202 LATIN SMALL LETTER NJ LATIN CAPITAL LETTER NJ
0x00cb, // 203
0x00cc, // 204
0x01cb, // 203
0x01cc, // 204
0x01ce, // 205 LATIN SMALL LETTER A WITH CARON LATIN CAPITAL LETTER A WITH CARON
0x00ce, // 206
0x01ce, // 206
0x01d0, // 207 LATIN SMALL LETTER I WITH CARON LATIN CAPITAL LETTER I WITH CARON
0x00d0, // 208
0x01d0, // 208
0x01d2, // 209 LATIN SMALL LETTER O WITH CARON LATIN CAPITAL LETTER O WITH CARON
0x00d2, // 210
0x01d2, // 210
0x01d4, // 211 LATIN SMALL LETTER U WITH CARON LATIN CAPITAL LETTER U WITH CARON
0x00d4, // 212
0x01d4, // 212
0x01d6, // 213 LATIN SMALL LETTER U WITH DIAERESIS AND MACRON LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
0x00d6, // 214
0x01d6, // 214
0x01d8, // 215 LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
0x00d8, // 216
0x01d8, // 216
0x01da, // 217 LATIN SMALL LETTER U WITH DIAERESIS AND CARON LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
0x00da, // 218
0x01da, // 218
0x01dc, // 219 LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
0x00dc, // 220
0x00dd, // 221
0x01dc, // 220
0x01dd, // 221
0x01df, // 222 LATIN SMALL LETTER A WITH DIAERESIS AND MACRON LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
0x00df, // 223
0x01df, // 223
0x01e1, // 224 LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
0x00e1, // 225
0x01e1, // 225
0x01e3, // 226 LATIN SMALL LIGATURE AE WITH MACRON LATIN CAPITAL LIGATURE AE MTH MACRON
0x00e3, // 227
0x01e3, // 227
0x01e5, // 228 LATIN SMALL LETTER G WITH STROKE LATIN CAPITAL LETTER G WITH STROKE
0x00e5, // 229
0x01e5, // 229
0x01e7, // 230 LATIN SMALL LETTER G WITH CARON LATIN CAPITAL LETTER G WITH CARON
0x00e7, // 231
0x01e7, // 231
0x01e9, // 232 LATIN SMALL LETTER K WITH CARON LATIN CAPITAL LETTER K WITH CARON
0x00e9, // 233
0x01e9, // 233
0x01eb, // 234 LATIN SMALL LETTER O WITH OGONEK LATIN CAPITAL LETTER O WITH OGONEK
0x00eb, // 235
0x01eb, // 235
0x01ed, // 236 LATIN SMALL LETTER O WITH OGONEK AND MACRON LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
0x00ed, // 237
0x01ed, // 237
0x01ef, // 238 LATIN SMALL LETTER EZH WITH CARON LATIN CAPITAL LETTER EZH WITH CARON
0x00ef, // 239
0x00f0, // 240
0x01ef, // 239
0x01f0, // 240
0x01f3, // 241 LATIN SMALL LETTER DZ LATIN CAPITAL LETTER DZ
0x00f2, // 242
0x00f3, // 243
0x01f2, // 242
0x01f3, // 243
0x01f5, // 244 LATIN SMALL LETTER G WITH ACUTE LATIN CAPITAL LETTER G WITH ACUTE
0x00f5, // 245
0x00f6, // 246
0x00f7, // 247
0x00f8, // 248
0x00f9, // 249
0x01f5, // 245
0x01f6, // 246
0x01f7, // 247
0x01f8, // 248
0x01f9, // 249
0x01fb, // 250 LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
0x00fb, // 251
0x01fb, // 251
0x01fd, // 252 LATIN SMALL LIGATURE AE WITH ACUTE LATIN CAPITAL LIGATURE AE WITH ACUTE
0x00fd, // 253
0x01fd, // 253
0x01ff, // 254 LATIN SMALL LETTER O WITH STROKE AND ACUTE LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
0x00ff // 255
0x01ff // 255
};
// code page 2

View File

@ -490,6 +490,6 @@ TEST(15)
EXPECT_EQ (tl::to_wstring (std::string ("Ä")).size (), size_t (1));
EXPECT_EQ (tl::to_string (tl::to_wstring ("Utf8 supports emoticons: \xF0\x9F\x98\x81\nand Umlauts: äüö")).c_str (), "Utf8 supports emoticons: \xF0\x9F\x98\x81\nand Umlauts: äüö");
EXPECT_EQ (tl::to_upper_case ("nOrMal(äÄüÜöÖß-42°+6€)"), "NORMAL(ÄÄÜÜÖÖß-42°+6€)");
EXPECT_EQ (tl::to_lower_case ("nOrMal(äÄüÜöÖß-42°+6€)"), "normal(ääüüööß-42°+6€)");
EXPECT_EQ (tl::to_upper_case ("nOrMaliI(äÄüÜöÖß-42°+6€)"), "NORMALII(ÄÄÜÜÖÖß-42°+6€)");
EXPECT_EQ (tl::to_lower_case ("nOrMaliI(äÄüÜöÖß-42°+6€)"), "normalii(ääüüööß-42°+6€)");
}