aboutsummaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/text/lowercase
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /vespalib/src/tests/text/lowercase
Publish
Diffstat (limited to 'vespalib/src/tests/text/lowercase')
-rw-r--r--vespalib/src/tests/text/lowercase/.gitignore1
-rw-r--r--vespalib/src/tests/text/lowercase/CMakeLists.txt8
-rw-r--r--vespalib/src/tests/text/lowercase/DESC1
-rw-r--r--vespalib/src/tests/text/lowercase/FILES1
-rw-r--r--vespalib/src/tests/text/lowercase/lowercase-table.dat664
-rw-r--r--vespalib/src/tests/text/lowercase/lowercase_test.cpp38
-rwxr-xr-xvespalib/src/tests/text/lowercase/to-c-code.pl74
-rw-r--r--vespalib/src/tests/text/lowercase/yell-want.dat792
8 files changed, 1579 insertions, 0 deletions
diff --git a/vespalib/src/tests/text/lowercase/.gitignore b/vespalib/src/tests/text/lowercase/.gitignore
new file mode 100644
index 00000000000..f1bdb6df992
--- /dev/null
+++ b/vespalib/src/tests/text/lowercase/.gitignore
@@ -0,0 +1 @@
+vespalib_lowercase_test_app
diff --git a/vespalib/src/tests/text/lowercase/CMakeLists.txt b/vespalib/src/tests/text/lowercase/CMakeLists.txt
new file mode 100644
index 00000000000..82fa2a7f1a7
--- /dev/null
+++ b/vespalib/src/tests/text/lowercase/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+vespa_add_executable(vespalib_lowercase_test_app
+ SOURCES
+ lowercase_test.cpp
+ DEPENDS
+ vespalib
+)
+vespa_add_test(NAME vespalib_lowercase_test_app COMMAND vespalib_lowercase_test_app)
diff --git a/vespalib/src/tests/text/lowercase/DESC b/vespalib/src/tests/text/lowercase/DESC
new file mode 100644
index 00000000000..e277112f112
--- /dev/null
+++ b/vespalib/src/tests/text/lowercase/DESC
@@ -0,0 +1 @@
+lowercase test. Take a look at lowercase_test.cpp for details.
diff --git a/vespalib/src/tests/text/lowercase/FILES b/vespalib/src/tests/text/lowercase/FILES
new file mode 100644
index 00000000000..418ce2dc5f5
--- /dev/null
+++ b/vespalib/src/tests/text/lowercase/FILES
@@ -0,0 +1 @@
+lowercase_test.cpp
diff --git a/vespalib/src/tests/text/lowercase/lowercase-table.dat b/vespalib/src/tests/text/lowercase/lowercase-table.dat
new file mode 100644
index 00000000000..c63883860ee
--- /dev/null
+++ b/vespalib/src/tests/text/lowercase/lowercase-table.dat
@@ -0,0 +1,664 @@
+lowercase( 65 )= 97
+lowercase( 66 )= 98
+lowercase( 67 )= 99
+lowercase( 68 )= 100
+lowercase( 69 )= 101
+lowercase( 70 )= 102
+lowercase( 71 )= 103
+lowercase( 72 )= 104
+lowercase( 73 )= 105
+lowercase( 74 )= 106
+lowercase( 75 )= 107
+lowercase( 76 )= 108
+lowercase( 77 )= 109
+lowercase( 78 )= 110
+lowercase( 79 )= 111
+lowercase( 80 )= 112
+lowercase( 81 )= 113
+lowercase( 82 )= 114
+lowercase( 83 )= 115
+lowercase( 84 )= 116
+lowercase( 85 )= 117
+lowercase( 86 )= 118
+lowercase( 87 )= 119
+lowercase( 88 )= 120
+lowercase( 89 )= 121
+lowercase( 90 )= 122
+lowercase( 192 )= 224
+lowercase( 193 )= 225
+lowercase( 194 )= 226
+lowercase( 195 )= 227
+lowercase( 196 )= 228
+lowercase( 197 )= 229
+lowercase( 198 )= 230
+lowercase( 199 )= 231
+lowercase( 200 )= 232
+lowercase( 201 )= 233
+lowercase( 202 )= 234
+lowercase( 203 )= 235
+lowercase( 204 )= 236
+lowercase( 205 )= 237
+lowercase( 206 )= 238
+lowercase( 207 )= 239
+lowercase( 208 )= 240
+lowercase( 209 )= 241
+lowercase( 210 )= 242
+lowercase( 211 )= 243
+lowercase( 212 )= 244
+lowercase( 213 )= 245
+lowercase( 214 )= 246
+lowercase( 216 )= 248
+lowercase( 217 )= 249
+lowercase( 218 )= 250
+lowercase( 219 )= 251
+lowercase( 220 )= 252
+lowercase( 221 )= 253
+lowercase( 222 )= 254
+lowercase( 256 )= 257
+lowercase( 258 )= 259
+lowercase( 260 )= 261
+lowercase( 262 )= 263
+lowercase( 264 )= 265
+lowercase( 266 )= 267
+lowercase( 268 )= 269
+lowercase( 270 )= 271
+lowercase( 272 )= 273
+lowercase( 274 )= 275
+lowercase( 276 )= 277
+lowercase( 278 )= 279
+lowercase( 280 )= 281
+lowercase( 282 )= 283
+lowercase( 284 )= 285
+lowercase( 286 )= 287
+lowercase( 288 )= 289
+lowercase( 290 )= 291
+lowercase( 292 )= 293
+lowercase( 294 )= 295
+lowercase( 296 )= 297
+lowercase( 298 )= 299
+lowercase( 300 )= 301
+lowercase( 302 )= 303
+lowercase( 304 )= 105
+lowercase( 308 )= 309
+lowercase( 310 )= 311
+lowercase( 313 )= 314
+lowercase( 315 )= 316
+lowercase( 317 )= 318
+lowercase( 321 )= 322
+lowercase( 323 )= 324
+lowercase( 325 )= 326
+lowercase( 327 )= 328
+lowercase( 330 )= 331
+lowercase( 332 )= 333
+lowercase( 334 )= 335
+lowercase( 336 )= 337
+lowercase( 338 )= 339
+lowercase( 340 )= 341
+lowercase( 342 )= 343
+lowercase( 344 )= 345
+lowercase( 346 )= 347
+lowercase( 348 )= 349
+lowercase( 350 )= 351
+lowercase( 352 )= 353
+lowercase( 354 )= 355
+lowercase( 356 )= 357
+lowercase( 358 )= 359
+lowercase( 360 )= 361
+lowercase( 362 )= 363
+lowercase( 364 )= 365
+lowercase( 366 )= 367
+lowercase( 368 )= 369
+lowercase( 370 )= 371
+lowercase( 372 )= 373
+lowercase( 374 )= 375
+lowercase( 376 )= 255
+lowercase( 377 )= 378
+lowercase( 379 )= 380
+lowercase( 381 )= 382
+lowercase( 385 )= 595
+lowercase( 386 )= 387
+lowercase( 388 )= 389
+lowercase( 390 )= 596
+lowercase( 391 )= 392
+lowercase( 393 )= 598
+lowercase( 394 )= 599
+lowercase( 395 )= 396
+lowercase( 398 )= 477
+lowercase( 399 )= 601
+lowercase( 400 )= 603
+lowercase( 401 )= 402
+lowercase( 403 )= 608
+lowercase( 404 )= 611
+lowercase( 406 )= 617
+lowercase( 407 )= 616
+lowercase( 408 )= 409
+lowercase( 412 )= 623
+lowercase( 413 )= 626
+lowercase( 415 )= 629
+lowercase( 416 )= 417
+lowercase( 418 )= 419
+lowercase( 420 )= 421
+lowercase( 422 )= 640
+lowercase( 423 )= 424
+lowercase( 425 )= 643
+lowercase( 428 )= 429
+lowercase( 430 )= 648
+lowercase( 431 )= 432
+lowercase( 433 )= 650
+lowercase( 434 )= 651
+lowercase( 435 )= 436
+lowercase( 437 )= 438
+lowercase( 439 )= 658
+lowercase( 440 )= 441
+lowercase( 444 )= 445
+lowercase( 461 )= 462
+lowercase( 463 )= 464
+lowercase( 465 )= 466
+lowercase( 467 )= 468
+lowercase( 469 )= 470
+lowercase( 471 )= 472
+lowercase( 473 )= 474
+lowercase( 475 )= 476
+lowercase( 478 )= 479
+lowercase( 480 )= 481
+lowercase( 482 )= 483
+lowercase( 484 )= 485
+lowercase( 486 )= 487
+lowercase( 488 )= 489
+lowercase( 490 )= 491
+lowercase( 492 )= 493
+lowercase( 494 )= 495
+lowercase( 500 )= 501
+lowercase( 502 )= 405
+lowercase( 503 )= 447
+lowercase( 504 )= 505
+lowercase( 506 )= 507
+lowercase( 508 )= 509
+lowercase( 510 )= 511
+lowercase( 512 )= 513
+lowercase( 514 )= 515
+lowercase( 516 )= 517
+lowercase( 518 )= 519
+lowercase( 520 )= 521
+lowercase( 522 )= 523
+lowercase( 524 )= 525
+lowercase( 526 )= 527
+lowercase( 528 )= 529
+lowercase( 530 )= 531
+lowercase( 532 )= 533
+lowercase( 534 )= 535
+lowercase( 536 )= 537
+lowercase( 538 )= 539
+lowercase( 540 )= 541
+lowercase( 542 )= 543
+lowercase( 544 )= 414
+lowercase( 546 )= 547
+lowercase( 548 )= 549
+lowercase( 550 )= 551
+lowercase( 552 )= 553
+lowercase( 554 )= 555
+lowercase( 556 )= 557
+lowercase( 558 )= 559
+lowercase( 560 )= 561
+lowercase( 562 )= 563
+lowercase( 902 )= 940
+lowercase( 904 )= 941
+lowercase( 905 )= 942
+lowercase( 906 )= 943
+lowercase( 908 )= 972
+lowercase( 910 )= 973
+lowercase( 911 )= 974
+lowercase( 913 )= 945
+lowercase( 914 )= 946
+lowercase( 915 )= 947
+lowercase( 916 )= 948
+lowercase( 917 )= 949
+lowercase( 918 )= 950
+lowercase( 919 )= 951
+lowercase( 920 )= 952
+lowercase( 921 )= 953
+lowercase( 922 )= 954
+lowercase( 923 )= 955
+lowercase( 924 )= 956
+lowercase( 925 )= 957
+lowercase( 926 )= 958
+lowercase( 927 )= 959
+lowercase( 928 )= 960
+lowercase( 929 )= 961
+lowercase( 931 )= 963
+lowercase( 932 )= 964
+lowercase( 933 )= 965
+lowercase( 934 )= 966
+lowercase( 935 )= 967
+lowercase( 936 )= 968
+lowercase( 937 )= 969
+lowercase( 938 )= 970
+lowercase( 939 )= 971
+lowercase( 984 )= 985
+lowercase( 986 )= 987
+lowercase( 988 )= 989
+lowercase( 990 )= 991
+lowercase( 992 )= 993
+lowercase( 994 )= 995
+lowercase( 996 )= 997
+lowercase( 998 )= 999
+lowercase( 1000 )= 1001
+lowercase( 1002 )= 1003
+lowercase( 1004 )= 1005
+lowercase( 1006 )= 1007
+lowercase( 1015 )= 1016
+lowercase( 1018 )= 1019
+lowercase( 1024 )= 1104
+lowercase( 1025 )= 1105
+lowercase( 1026 )= 1106
+lowercase( 1027 )= 1107
+lowercase( 1028 )= 1108
+lowercase( 1029 )= 1109
+lowercase( 1030 )= 1110
+lowercase( 1031 )= 1111
+lowercase( 1032 )= 1112
+lowercase( 1033 )= 1113
+lowercase( 1034 )= 1114
+lowercase( 1035 )= 1115
+lowercase( 1036 )= 1116
+lowercase( 1037 )= 1117
+lowercase( 1038 )= 1118
+lowercase( 1039 )= 1119
+lowercase( 1040 )= 1072
+lowercase( 1041 )= 1073
+lowercase( 1042 )= 1074
+lowercase( 1043 )= 1075
+lowercase( 1044 )= 1076
+lowercase( 1045 )= 1077
+lowercase( 1046 )= 1078
+lowercase( 1047 )= 1079
+lowercase( 1048 )= 1080
+lowercase( 1049 )= 1081
+lowercase( 1050 )= 1082
+lowercase( 1051 )= 1083
+lowercase( 1052 )= 1084
+lowercase( 1053 )= 1085
+lowercase( 1054 )= 1086
+lowercase( 1055 )= 1087
+lowercase( 1056 )= 1088
+lowercase( 1057 )= 1089
+lowercase( 1058 )= 1090
+lowercase( 1059 )= 1091
+lowercase( 1060 )= 1092
+lowercase( 1061 )= 1093
+lowercase( 1062 )= 1094
+lowercase( 1063 )= 1095
+lowercase( 1064 )= 1096
+lowercase( 1065 )= 1097
+lowercase( 1066 )= 1098
+lowercase( 1067 )= 1099
+lowercase( 1068 )= 1100
+lowercase( 1069 )= 1101
+lowercase( 1070 )= 1102
+lowercase( 1071 )= 1103
+lowercase( 1120 )= 1121
+lowercase( 1122 )= 1123
+lowercase( 1124 )= 1125
+lowercase( 1126 )= 1127
+lowercase( 1128 )= 1129
+lowercase( 1130 )= 1131
+lowercase( 1132 )= 1133
+lowercase( 1134 )= 1135
+lowercase( 1136 )= 1137
+lowercase( 1138 )= 1139
+lowercase( 1140 )= 1141
+lowercase( 1142 )= 1143
+lowercase( 1144 )= 1145
+lowercase( 1146 )= 1147
+lowercase( 1148 )= 1149
+lowercase( 1150 )= 1151
+lowercase( 1152 )= 1153
+lowercase( 1162 )= 1163
+lowercase( 1164 )= 1165
+lowercase( 1166 )= 1167
+lowercase( 1168 )= 1169
+lowercase( 1170 )= 1171
+lowercase( 1172 )= 1173
+lowercase( 1174 )= 1175
+lowercase( 1176 )= 1177
+lowercase( 1178 )= 1179
+lowercase( 1180 )= 1181
+lowercase( 1182 )= 1183
+lowercase( 1184 )= 1185
+lowercase( 1186 )= 1187
+lowercase( 1188 )= 1189
+lowercase( 1190 )= 1191
+lowercase( 1192 )= 1193
+lowercase( 1194 )= 1195
+lowercase( 1196 )= 1197
+lowercase( 1198 )= 1199
+lowercase( 1200 )= 1201
+lowercase( 1202 )= 1203
+lowercase( 1204 )= 1205
+lowercase( 1206 )= 1207
+lowercase( 1208 )= 1209
+lowercase( 1210 )= 1211
+lowercase( 1212 )= 1213
+lowercase( 1214 )= 1215
+lowercase( 1217 )= 1218
+lowercase( 1219 )= 1220
+lowercase( 1221 )= 1222
+lowercase( 1223 )= 1224
+lowercase( 1225 )= 1226
+lowercase( 1227 )= 1228
+lowercase( 1229 )= 1230
+lowercase( 1232 )= 1233
+lowercase( 1234 )= 1235
+lowercase( 1236 )= 1237
+lowercase( 1238 )= 1239
+lowercase( 1240 )= 1241
+lowercase( 1242 )= 1243
+lowercase( 1244 )= 1245
+lowercase( 1246 )= 1247
+lowercase( 1248 )= 1249
+lowercase( 1250 )= 1251
+lowercase( 1252 )= 1253
+lowercase( 1254 )= 1255
+lowercase( 1256 )= 1257
+lowercase( 1258 )= 1259
+lowercase( 1260 )= 1261
+lowercase( 1262 )= 1263
+lowercase( 1264 )= 1265
+lowercase( 1266 )= 1267
+lowercase( 1268 )= 1269
+lowercase( 1272 )= 1273
+lowercase( 1280 )= 1281
+lowercase( 1282 )= 1283
+lowercase( 1284 )= 1285
+lowercase( 1286 )= 1287
+lowercase( 1288 )= 1289
+lowercase( 1290 )= 1291
+lowercase( 1292 )= 1293
+lowercase( 1294 )= 1295
+lowercase( 1329 )= 1377
+lowercase( 1330 )= 1378
+lowercase( 1331 )= 1379
+lowercase( 1332 )= 1380
+lowercase( 1333 )= 1381
+lowercase( 1334 )= 1382
+lowercase( 1335 )= 1383
+lowercase( 1336 )= 1384
+lowercase( 1337 )= 1385
+lowercase( 1338 )= 1386
+lowercase( 1339 )= 1387
+lowercase( 1340 )= 1388
+lowercase( 1341 )= 1389
+lowercase( 1342 )= 1390
+lowercase( 1343 )= 1391
+lowercase( 1344 )= 1392
+lowercase( 1345 )= 1393
+lowercase( 1346 )= 1394
+lowercase( 1347 )= 1395
+lowercase( 1348 )= 1396
+lowercase( 1349 )= 1397
+lowercase( 1350 )= 1398
+lowercase( 1351 )= 1399
+lowercase( 1352 )= 1400
+lowercase( 1353 )= 1401
+lowercase( 1354 )= 1402
+lowercase( 1355 )= 1403
+lowercase( 1356 )= 1404
+lowercase( 1357 )= 1405
+lowercase( 1358 )= 1406
+lowercase( 1359 )= 1407
+lowercase( 1360 )= 1408
+lowercase( 1361 )= 1409
+lowercase( 1362 )= 1410
+lowercase( 1363 )= 1411
+lowercase( 1364 )= 1412
+lowercase( 1365 )= 1413
+lowercase( 1366 )= 1414
+lowercase( 7680 )= 7681
+lowercase( 7682 )= 7683
+lowercase( 7684 )= 7685
+lowercase( 7686 )= 7687
+lowercase( 7688 )= 7689
+lowercase( 7690 )= 7691
+lowercase( 7692 )= 7693
+lowercase( 7694 )= 7695
+lowercase( 7696 )= 7697
+lowercase( 7698 )= 7699
+lowercase( 7700 )= 7701
+lowercase( 7702 )= 7703
+lowercase( 7704 )= 7705
+lowercase( 7706 )= 7707
+lowercase( 7708 )= 7709
+lowercase( 7710 )= 7711
+lowercase( 7712 )= 7713
+lowercase( 7714 )= 7715
+lowercase( 7716 )= 7717
+lowercase( 7718 )= 7719
+lowercase( 7720 )= 7721
+lowercase( 7722 )= 7723
+lowercase( 7724 )= 7725
+lowercase( 7726 )= 7727
+lowercase( 7728 )= 7729
+lowercase( 7730 )= 7731
+lowercase( 7732 )= 7733
+lowercase( 7734 )= 7735
+lowercase( 7736 )= 7737
+lowercase( 7738 )= 7739
+lowercase( 7740 )= 7741
+lowercase( 7742 )= 7743
+lowercase( 7744 )= 7745
+lowercase( 7746 )= 7747
+lowercase( 7748 )= 7749
+lowercase( 7750 )= 7751
+lowercase( 7752 )= 7753
+lowercase( 7754 )= 7755
+lowercase( 7756 )= 7757
+lowercase( 7758 )= 7759
+lowercase( 7760 )= 7761
+lowercase( 7762 )= 7763
+lowercase( 7764 )= 7765
+lowercase( 7766 )= 7767
+lowercase( 7768 )= 7769
+lowercase( 7770 )= 7771
+lowercase( 7772 )= 7773
+lowercase( 7774 )= 7775
+lowercase( 7776 )= 7777
+lowercase( 7778 )= 7779
+lowercase( 7780 )= 7781
+lowercase( 7782 )= 7783
+lowercase( 7784 )= 7785
+lowercase( 7786 )= 7787
+lowercase( 7788 )= 7789
+lowercase( 7790 )= 7791
+lowercase( 7792 )= 7793
+lowercase( 7794 )= 7795
+lowercase( 7796 )= 7797
+lowercase( 7798 )= 7799
+lowercase( 7800 )= 7801
+lowercase( 7802 )= 7803
+lowercase( 7804 )= 7805
+lowercase( 7806 )= 7807
+lowercase( 7808 )= 7809
+lowercase( 7810 )= 7811
+lowercase( 7812 )= 7813
+lowercase( 7814 )= 7815
+lowercase( 7816 )= 7817
+lowercase( 7818 )= 7819
+lowercase( 7820 )= 7821
+lowercase( 7822 )= 7823
+lowercase( 7824 )= 7825
+lowercase( 7826 )= 7827
+lowercase( 7828 )= 7829
+lowercase( 7840 )= 7841
+lowercase( 7842 )= 7843
+lowercase( 7844 )= 7845
+lowercase( 7846 )= 7847
+lowercase( 7848 )= 7849
+lowercase( 7850 )= 7851
+lowercase( 7852 )= 7853
+lowercase( 7854 )= 7855
+lowercase( 7856 )= 7857
+lowercase( 7858 )= 7859
+lowercase( 7860 )= 7861
+lowercase( 7862 )= 7863
+lowercase( 7864 )= 7865
+lowercase( 7866 )= 7867
+lowercase( 7868 )= 7869
+lowercase( 7870 )= 7871
+lowercase( 7872 )= 7873
+lowercase( 7874 )= 7875
+lowercase( 7876 )= 7877
+lowercase( 7878 )= 7879
+lowercase( 7880 )= 7881
+lowercase( 7882 )= 7883
+lowercase( 7884 )= 7885
+lowercase( 7886 )= 7887
+lowercase( 7888 )= 7889
+lowercase( 7890 )= 7891
+lowercase( 7892 )= 7893
+lowercase( 7894 )= 7895
+lowercase( 7896 )= 7897
+lowercase( 7898 )= 7899
+lowercase( 7900 )= 7901
+lowercase( 7902 )= 7903
+lowercase( 7904 )= 7905
+lowercase( 7906 )= 7907
+lowercase( 7908 )= 7909
+lowercase( 7910 )= 7911
+lowercase( 7912 )= 7913
+lowercase( 7914 )= 7915
+lowercase( 7916 )= 7917
+lowercase( 7918 )= 7919
+lowercase( 7920 )= 7921
+lowercase( 7922 )= 7923
+lowercase( 7924 )= 7925
+lowercase( 7926 )= 7927
+lowercase( 7928 )= 7929
+lowercase( 7944 )= 7936
+lowercase( 7945 )= 7937
+lowercase( 7946 )= 7938
+lowercase( 7947 )= 7939
+lowercase( 7948 )= 7940
+lowercase( 7949 )= 7941
+lowercase( 7950 )= 7942
+lowercase( 7951 )= 7943
+lowercase( 7960 )= 7952
+lowercase( 7961 )= 7953
+lowercase( 7962 )= 7954
+lowercase( 7963 )= 7955
+lowercase( 7964 )= 7956
+lowercase( 7965 )= 7957
+lowercase( 7976 )= 7968
+lowercase( 7977 )= 7969
+lowercase( 7978 )= 7970
+lowercase( 7979 )= 7971
+lowercase( 7980 )= 7972
+lowercase( 7981 )= 7973
+lowercase( 7982 )= 7974
+lowercase( 7983 )= 7975
+lowercase( 7992 )= 7984
+lowercase( 7993 )= 7985
+lowercase( 7994 )= 7986
+lowercase( 7995 )= 7987
+lowercase( 7996 )= 7988
+lowercase( 7997 )= 7989
+lowercase( 7998 )= 7990
+lowercase( 7999 )= 7991
+lowercase( 8008 )= 8000
+lowercase( 8009 )= 8001
+lowercase( 8010 )= 8002
+lowercase( 8011 )= 8003
+lowercase( 8012 )= 8004
+lowercase( 8013 )= 8005
+lowercase( 8025 )= 8017
+lowercase( 8027 )= 8019
+lowercase( 8029 )= 8021
+lowercase( 8031 )= 8023
+lowercase( 8040 )= 8032
+lowercase( 8041 )= 8033
+lowercase( 8042 )= 8034
+lowercase( 8043 )= 8035
+lowercase( 8044 )= 8036
+lowercase( 8045 )= 8037
+lowercase( 8046 )= 8038
+lowercase( 8047 )= 8039
+lowercase( 8072 )= 8064
+lowercase( 8073 )= 8065
+lowercase( 8074 )= 8066
+lowercase( 8075 )= 8067
+lowercase( 8076 )= 8068
+lowercase( 8077 )= 8069
+lowercase( 8078 )= 8070
+lowercase( 8079 )= 8071
+lowercase( 8088 )= 8080
+lowercase( 8089 )= 8081
+lowercase( 8090 )= 8082
+lowercase( 8091 )= 8083
+lowercase( 8092 )= 8084
+lowercase( 8093 )= 8085
+lowercase( 8094 )= 8086
+lowercase( 8095 )= 8087
+lowercase( 8104 )= 8096
+lowercase( 8105 )= 8097
+lowercase( 8106 )= 8098
+lowercase( 8107 )= 8099
+lowercase( 8108 )= 8100
+lowercase( 8109 )= 8101
+lowercase( 8110 )= 8102
+lowercase( 8111 )= 8103
+lowercase( 8120 )= 8112
+lowercase( 8121 )= 8113
+lowercase( 8122 )= 8048
+lowercase( 8124 )= 8115
+lowercase( 8136 )= 8050
+lowercase( 8138 )= 8052
+lowercase( 8140 )= 8131
+lowercase( 8152 )= 8144
+lowercase( 8153 )= 8145
+lowercase( 8154 )= 8054
+lowercase( 8168 )= 8160
+lowercase( 8169 )= 8161
+lowercase( 8170 )= 8058
+lowercase( 8172 )= 8165
+lowercase( 8184 )= 8056
+lowercase( 8186 )= 8060
+lowercase( 8188 )= 8179
+lowercase( 66560 )= 66600
+lowercase( 66561 )= 66601
+lowercase( 66562 )= 66602
+lowercase( 66563 )= 66603
+lowercase( 66564 )= 66604
+lowercase( 66565 )= 66605
+lowercase( 66566 )= 66606
+lowercase( 66567 )= 66607
+lowercase( 66568 )= 66608
+lowercase( 66569 )= 66609
+lowercase( 66570 )= 66610
+lowercase( 66571 )= 66611
+lowercase( 66572 )= 66612
+lowercase( 66573 )= 66613
+lowercase( 66574 )= 66614
+lowercase( 66575 )= 66615
+lowercase( 66576 )= 66616
+lowercase( 66577 )= 66617
+lowercase( 66578 )= 66618
+lowercase( 66579 )= 66619
+lowercase( 66580 )= 66620
+lowercase( 66581 )= 66621
+lowercase( 66582 )= 66622
+lowercase( 66583 )= 66623
+lowercase( 66584 )= 66624
+lowercase( 66585 )= 66625
+lowercase( 66586 )= 66626
+lowercase( 66587 )= 66627
+lowercase( 66588 )= 66628
+lowercase( 66589 )= 66629
+lowercase( 66590 )= 66630
+lowercase( 66591 )= 66631
+lowercase( 66592 )= 66632
+lowercase( 66593 )= 66633
+lowercase( 66594 )= 66634
+lowercase( 66595 )= 66635
+lowercase( 66596 )= 66636
+lowercase( 66597 )= 66637
+lowercase( 66598 )= 66638
+lowercase( 66599 )= 66639
diff --git a/vespalib/src/tests/text/lowercase/lowercase_test.cpp b/vespalib/src/tests/text/lowercase/lowercase_test.cpp
new file mode 100644
index 00000000000..b226690790d
--- /dev/null
+++ b/vespalib/src/tests/text/lowercase/lowercase_test.cpp
@@ -0,0 +1,38 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#include <vespa/fastos/fastos.h>
+#include <vespa/log/log.h>
+LOG_SETUP("lowercase_test");
+#include <vespa/vespalib/testkit/testapp.h>
+#include <vespa/vespalib/text/lowercase.h>
+#include <iostream>
+#include <fstream>
+
+using namespace vespalib;
+
+TEST_SETUP(Test);
+
+int
+Test::Main()
+{
+ TEST_INIT("lowercase_test");
+
+ EXPECT_EQUAL('a', LowerCase::convert('A'));
+ EXPECT_EQUAL((int8_t)'a', LowerCase::convert((int8_t)'A'));
+ EXPECT_EQUAL((uint8_t)'a', LowerCase::convert((uint8_t)'A'));
+
+ std::ifstream yellData("yell-want.dat");
+
+ EXPECT_TRUE(yellData.good());
+
+ while (yellData.good()) {
+ uint32_t hi=0, lo=0;
+ yellData >> hi >> lo;
+ EXPECT_EQUAL(lo, LowerCase::convert(hi));
+ if (lo != LowerCase::convert(hi)) {
+ printf("lc(%04X) -> %04X\n", hi, LowerCase::convert(hi));
+ printf("yell(%04X) -> %04X\n", hi, lo);
+ }
+ // printf("lowercase( %d )= %d\n", hi, lo);
+ }
+ TEST_DONE();
+}
diff --git a/vespalib/src/tests/text/lowercase/to-c-code.pl b/vespalib/src/tests/text/lowercase/to-c-code.pl
new file mode 100755
index 00000000000..63a87fb56ae
--- /dev/null
+++ b/vespalib/src/tests/text/lowercase/to-c-code.pl
@@ -0,0 +1,74 @@
+#!/usr/local/bin/perl
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+# input looks like:
+# lowercase( 65 )= 97
+
+
+my %lowercase;
+
+my %blocks;
+
+while (<>) {
+ my ( $key, $value ) = m{lowercase. (\d+) .. (\d+)$} ;
+ $lowercase{$key} = $value;
+
+ my $b = ( $key >> 8 );
+ ++$blocks{$b};
+}
+
+@kl = keys %blocks;
+@nkl = sort {$a <=> $b} @kl;
+
+print STDERR "blocks: " . join(" ", @nkl) . "\n";
+
+
+foreach $b ( @nkl )
+{
+ if ( $b == 0 ) {
+ print "unsigned char\nLowerCase::lowercase_${b}_block[256] = {\n\t";
+ } else {
+ print "\nuint32_t\nLowerCase::lowercase_${b}_block[256] = {\n\t";
+ }
+ my $act = 0;
+ for ($i = 0; $i < 256; $i++) {
+ if ($act > 7) {
+ print ",\n\t";
+ $act = 0;
+ } elsif ($act) {
+ print ",";
+ }
+ $n = ($b << 8) + $i;
+ $v = $lowercase{$n};
+ if (defined $v) {
+ print "\t$v";
+ die "too big value in table 0: $v\n" if ($v > 255 && $b == 0);
+ } else {
+ print "\t$n";
+ }
+ ++$act;
+ }
+ print "\n\t};\n\n";
+}
+
+{
+ print "\nuint32_t\nLowerCase::lowercase_0_5_block[0x600] = {\n\t";
+ my $act = 0;
+ for ($i = 0; $i < 0x600; $i++) {
+ if ($act > 7) {
+ print ",\n\t";
+ $act = 0;
+ } elsif ($act) {
+ print ",";
+ }
+ $n = $i;
+ $v = $lowercase{$n};
+ if (defined $v) {
+ print "\t$v";
+ } else {
+ print "\t$n";
+ }
+ ++$act;
+ }
+ print "\n\t};\n\n";
+}
diff --git a/vespalib/src/tests/text/lowercase/yell-want.dat b/vespalib/src/tests/text/lowercase/yell-want.dat
new file mode 100644
index 00000000000..88ca4bc6972
--- /dev/null
+++ b/vespalib/src/tests/text/lowercase/yell-want.dat
@@ -0,0 +1,792 @@
+65 97
+66 98
+67 99
+68 100
+69 101
+70 102
+71 103
+72 104
+73 105
+74 106
+75 107
+76 108
+77 109
+78 110
+79 111
+80 112
+81 113
+82 114
+83 115
+84 116
+85 117
+86 118
+87 119
+88 120
+89 121
+90 122
+192 224
+193 225
+194 226
+195 227
+196 228
+197 229
+198 230
+199 231
+200 232
+201 233
+202 234
+203 235
+204 236
+205 237
+206 238
+207 239
+208 240
+209 241
+210 242
+211 243
+212 244
+213 245
+214 246
+216 248
+217 249
+218 250
+219 251
+220 252
+221 253
+222 254
+256 257
+258 259
+260 261
+262 263
+264 265
+266 267
+268 269
+270 271
+272 273
+274 275
+276 277
+278 279
+280 281
+282 283
+284 285
+286 287
+288 289
+290 291
+292 293
+294 295
+296 297
+298 299
+300 301
+302 303
+304 105
+308 309
+310 311
+313 314
+315 316
+317 318
+321 322
+323 324
+325 326
+327 328
+330 331
+332 333
+334 335
+336 337
+338 339
+340 341
+342 343
+344 345
+346 347
+348 349
+350 351
+352 353
+354 355
+356 357
+358 359
+360 361
+362 363
+364 365
+366 367
+368 369
+370 371
+372 373
+374 375
+376 255
+377 378
+379 380
+381 382
+385 595
+386 387
+388 389
+390 596
+391 392
+393 598
+394 599
+395 396
+398 477
+399 601
+400 603
+401 402
+403 608
+404 611
+406 617
+407 616
+408 409
+412 623
+413 626
+415 629
+416 417
+418 419
+420 421
+422 640
+423 424
+425 643
+428 429
+430 648
+431 432
+433 650
+434 651
+435 436
+437 438
+439 658
+440 441
+444 445
+461 462
+463 464
+465 466
+467 468
+469 470
+471 472
+473 474
+475 476
+478 479
+480 481
+482 483
+484 485
+486 487
+488 489
+490 491
+492 493
+494 495
+500 501
+502 405
+503 447
+504 505
+506 507
+508 509
+510 511
+512 513
+514 515
+516 517
+518 519
+520 521
+522 523
+524 525
+526 527
+528 529
+530 531
+532 533
+534 535
+536 537
+538 539
+540 541
+542 543
+544 414
+546 547
+548 549
+550 551
+552 553
+554 555
+556 557
+558 559
+560 561
+562 563
+570 11365
+571 572
+573 410
+574 11366
+577 578
+579 384
+580 649
+581 652
+582 583
+584 585
+586 587
+588 589
+590 591
+902 940
+904 941
+905 942
+906 943
+908 972
+910 973
+911 974
+913 945
+914 946
+915 947
+916 948
+917 949
+918 950
+919 951
+920 952
+921 953
+922 954
+923 955
+924 956
+925 957
+926 958
+927 959
+928 960
+929 961
+931 963
+932 964
+933 965
+934 966
+935 967
+936 968
+937 969
+938 970
+939 971
+984 985
+986 987
+988 989
+990 991
+992 993
+994 995
+996 997
+998 999
+1000 1001
+1002 1003
+1004 1005
+1006 1007
+1015 1016
+1018 1019
+1021 891
+1022 892
+1023 893
+1024 1104
+1025 1105
+1026 1106
+1027 1107
+1028 1108
+1029 1109
+1030 1110
+1031 1111
+1032 1112
+1033 1113
+1034 1114
+1035 1115
+1036 1116
+1037 1117
+1038 1118
+1039 1119
+1040 1072
+1041 1073
+1042 1074
+1043 1075
+1044 1076
+1045 1077
+1046 1078
+1047 1079
+1048 1080
+1049 1081
+1050 1082
+1051 1083
+1052 1084
+1053 1085
+1054 1086
+1055 1087
+1056 1088
+1057 1089
+1058 1090
+1059 1091
+1060 1092
+1061 1093
+1062 1094
+1063 1095
+1064 1096
+1065 1097
+1066 1098
+1067 1099
+1068 1100
+1069 1101
+1070 1102
+1071 1103
+1120 1121
+1122 1123
+1124 1125
+1126 1127
+1128 1129
+1130 1131
+1132 1133
+1134 1135
+1136 1137
+1138 1139
+1140 1141
+1142 1143
+1144 1145
+1146 1147
+1148 1149
+1150 1151
+1152 1153
+1162 1163
+1164 1165
+1166 1167
+1168 1169
+1170 1171
+1172 1173
+1174 1175
+1176 1177
+1178 1179
+1180 1181
+1182 1183
+1184 1185
+1186 1187
+1188 1189
+1190 1191
+1192 1193
+1194 1195
+1196 1197
+1198 1199
+1200 1201
+1202 1203
+1204 1205
+1206 1207
+1208 1209
+1210 1211
+1212 1213
+1214 1215
+1216 1231
+1217 1218
+1219 1220
+1221 1222
+1223 1224
+1225 1226
+1227 1228
+1229 1230
+1232 1233
+1234 1235
+1236 1237
+1238 1239
+1240 1241
+1242 1243
+1244 1245
+1246 1247
+1248 1249
+1250 1251
+1252 1253
+1254 1255
+1256 1257
+1258 1259
+1260 1261
+1262 1263
+1264 1265
+1266 1267
+1268 1269
+1270 1271
+1272 1273
+1274 1275
+1276 1277
+1278 1279
+1280 1281
+1282 1283
+1284 1285
+1286 1287
+1288 1289
+1290 1291
+1292 1293
+1294 1295
+1296 1297
+1298 1299
+1329 1377
+1330 1378
+1331 1379
+1332 1380
+1333 1381
+1334 1382
+1335 1383
+1336 1384
+1337 1385
+1338 1386
+1339 1387
+1340 1388
+1341 1389
+1342 1390
+1343 1391
+1344 1392
+1345 1393
+1346 1394
+1347 1395
+1348 1396
+1349 1397
+1350 1398
+1351 1399
+1352 1400
+1353 1401
+1354 1402
+1355 1403
+1356 1404
+1357 1405
+1358 1406
+1359 1407
+1360 1408
+1361 1409
+1362 1410
+1363 1411
+1364 1412
+1365 1413
+1366 1414
+4256 11520
+4257 11521
+4258 11522
+4259 11523
+4260 11524
+4261 11525
+4262 11526
+4263 11527
+4264 11528
+4265 11529
+4266 11530
+4267 11531
+4268 11532
+4269 11533
+4270 11534
+4271 11535
+4272 11536
+4273 11537
+4274 11538
+4275 11539
+4276 11540
+4277 11541
+4278 11542
+4279 11543
+4280 11544
+4281 11545
+4282 11546
+4283 11547
+4284 11548
+4285 11549
+4286 11550
+4287 11551
+4288 11552
+4289 11553
+4290 11554
+4291 11555
+4292 11556
+4293 11557
+7680 7681
+7682 7683
+7684 7685
+7686 7687
+7688 7689
+7690 7691
+7692 7693
+7694 7695
+7696 7697
+7698 7699
+7700 7701
+7702 7703
+7704 7705
+7706 7707
+7708 7709
+7710 7711
+7712 7713
+7714 7715
+7716 7717
+7718 7719
+7720 7721
+7722 7723
+7724 7725
+7726 7727
+7728 7729
+7730 7731
+7732 7733
+7734 7735
+7736 7737
+7738 7739
+7740 7741
+7742 7743
+7744 7745
+7746 7747
+7748 7749
+7750 7751
+7752 7753
+7754 7755
+7756 7757
+7758 7759
+7760 7761
+7762 7763
+7764 7765
+7766 7767
+7768 7769
+7770 7771
+7772 7773
+7774 7775
+7776 7777
+7778 7779
+7780 7781
+7782 7783
+7784 7785
+7786 7787
+7788 7789
+7790 7791
+7792 7793
+7794 7795
+7796 7797
+7798 7799
+7800 7801
+7802 7803
+7804 7805
+7806 7807
+7808 7809
+7810 7811
+7812 7813
+7814 7815
+7816 7817
+7818 7819
+7820 7821
+7822 7823
+7824 7825
+7826 7827
+7828 7829
+7840 7841
+7842 7843
+7844 7845
+7846 7847
+7848 7849
+7850 7851
+7852 7853
+7854 7855
+7856 7857
+7858 7859
+7860 7861
+7862 7863
+7864 7865
+7866 7867
+7868 7869
+7870 7871
+7872 7873
+7874 7875
+7876 7877
+7878 7879
+7880 7881
+7882 7883
+7884 7885
+7886 7887
+7888 7889
+7890 7891
+7892 7893
+7894 7895
+7896 7897
+7898 7899
+7900 7901
+7902 7903
+7904 7905
+7906 7907
+7908 7909
+7910 7911
+7912 7913
+7914 7915
+7916 7917
+7918 7919
+7920 7921
+7922 7923
+7924 7925
+7926 7927
+7928 7929
+7944 7936
+7945 7937
+7946 7938
+7947 7939
+7948 7940
+7949 7941
+7950 7942
+7951 7943
+7960 7952
+7961 7953
+7962 7954
+7963 7955
+7964 7956
+7965 7957
+7976 7968
+7977 7969
+7978 7970
+7979 7971
+7980 7972
+7981 7973
+7982 7974
+7983 7975
+7992 7984
+7993 7985
+7994 7986
+7995 7987
+7996 7988
+7997 7989
+7998 7990
+7999 7991
+8008 8000
+8009 8001
+8010 8002
+8011 8003
+8012 8004
+8013 8005
+8025 8017
+8027 8019
+8029 8021
+8031 8023
+8040 8032
+8041 8033
+8042 8034
+8043 8035
+8044 8036
+8045 8037
+8046 8038
+8047 8039
+8072 8064
+8073 8065
+8074 8066
+8075 8067
+8076 8068
+8077 8069
+8078 8070
+8079 8071
+8088 8080
+8089 8081
+8090 8082
+8091 8083
+8092 8084
+8093 8085
+8094 8086
+8095 8087
+8104 8096
+8105 8097
+8106 8098
+8107 8099
+8108 8100
+8109 8101
+8110 8102
+8111 8103
+8120 8112
+8121 8113
+8122 8048
+8124 8115
+8136 8050
+8138 8052
+8140 8131
+8152 8144
+8153 8145
+8154 8054
+8168 8160
+8169 8161
+8170 8058
+8172 8165
+8184 8056
+8186 8060
+8188 8179
+8498 8526
+8579 8580
+11264 11312
+11265 11313
+11266 11314
+11267 11315
+11268 11316
+11269 11317
+11270 11318
+11271 11319
+11272 11320
+11273 11321
+11274 11322
+11275 11323
+11276 11324
+11277 11325
+11278 11326
+11279 11327
+11280 11328
+11281 11329
+11282 11330
+11283 11331
+11284 11332
+11285 11333
+11286 11334
+11287 11335
+11288 11336
+11289 11337
+11290 11338
+11291 11339
+11292 11340
+11293 11341
+11294 11342
+11295 11343
+11296 11344
+11297 11345
+11298 11346
+11299 11347
+11300 11348
+11301 11349
+11302 11350
+11303 11351
+11304 11352
+11305 11353
+11306 11354
+11307 11355
+11308 11356
+11309 11357
+11310 11358
+11360 11361
+11362 619
+11363 7549
+11364 637
+11367 11368
+11369 11370
+11371 11372
+11381 11382
+11392 11393
+11394 11395
+11396 11397
+11398 11399
+11400 11401
+11402 11403
+11404 11405
+11406 11407
+11408 11409
+11410 11411
+11412 11413
+11414 11415
+11416 11417
+11418 11419
+11420 11421
+11422 11423
+11424 11425
+11426 11427
+11428 11429
+11430 11431
+11432 11433
+11434 11435
+11436 11437
+11438 11439
+11440 11441
+11442 11443
+11444 11445
+11446 11447
+11448 11449
+11450 11451
+11452 11453
+11454 11455
+11456 11457
+11458 11459
+11460 11461
+11462 11463
+11464 11465
+11466 11467
+11468 11469
+11470 11471
+11472 11473
+11474 11475
+11476 11477
+11478 11479
+11480 11481
+11482 11483
+11484 11485
+11486 11487
+11488 11489
+11490 11491