More tests and more uppercase support

git-svn-id: trunk@32912 -
This commit is contained in:
sekelsenmat 2011-10-15 18:38:52 +00:00
parent 39e5e43f9d
commit a8bff35bc7
2 changed files with 124 additions and 2 deletions

View File

@ -2752,8 +2752,114 @@ begin
$C7B2..$C7B3: NewChar := $C7B1;
$C7B5: NewChar := $C7B4;
$C7B8..$C7BF: if OldChar mod 2 = 1 then NewChar := OldChar - 1;
//
$C880..$C8B3: if OldChar mod 2 = 0 then NewChar := OldChar - 1;
// 0200 = C8 80
// 0210 = C8 90
$C880..$C89F: if OldChar mod 2 = 1 then NewChar := OldChar - 1;
// 0220 = C8 A0
// 0230 = C8 B0
$C8A2..$C8B3: if OldChar mod 2 = 1 then NewChar := OldChar - 1;
$C8BC: NewChar := $C8BB;
$C8BF:
begin
OutStr[OutCounter] := #$E2;
OutStr[OutCounter+1]:= #$B1;
OutStr[OutCounter+2]:= #$BE;
NewCharLen := 3;
CharProcessed := True;
end;
// 0240 = C9 80
$C980:
begin
OutStr[OutCounter] := #$E2;
OutStr[OutCounter+1]:= #$B1;
OutStr[OutCounter+2]:= #$BF;
NewCharLen := 3;
CharProcessed := True;
end;
$C982: NewChar := $C981;
$C986..$C98F: if OldChar mod 2 = 1 then NewChar := OldChar - 1;
// 0250 = C9 90
$C990:
begin
OutStr[OutCounter] := #$E2;
OutStr[OutCounter+1]:= #$B1;
OutStr[OutCounter+2]:= #$AF;
NewCharLen := 3;
CharProcessed := True;
end;
$C991:
begin
OutStr[OutCounter] := #$E2;
OutStr[OutCounter+1]:= #$B1;
OutStr[OutCounter+2]:= #$AD;
NewCharLen := 3;
CharProcessed := True;
end;
$C992:
begin
OutStr[OutCounter] := #$E2;
OutStr[OutCounter+1]:= #$B1;
OutStr[OutCounter+2]:= #$B0;
NewCharLen := 3;
CharProcessed := True;
end;
$C993: NewChar := $C681;
$C994: NewChar := $C686;
$C996: NewChar := $C689;
$C997: NewChar := $C68A;
$C999: NewChar := $C68F;
$C99B: NewChar := $C690;
// 0260 = C9 A0
$C9A0: NewChar := $C693;
$C9A3: NewChar := $C694;
$C9A5:
begin
OutStr[OutCounter] := #$EA;
OutStr[OutCounter+1]:= #$9E;
OutStr[OutCounter+2]:= #$8D;
NewCharLen := 3;
CharProcessed := True;
end;
$C9A8: NewChar := $C697;
$C9A9: NewChar := $C696;
$C9AB:
begin
OutStr[OutCounter] := #$E2;
OutStr[OutCounter+1]:= #$B1;
OutStr[OutCounter+2]:= #$A2;
NewCharLen := 3;
CharProcessed := True;
end;
$C9AF: NewChar := $C69C;
// 0270 = C9 B0
$C9B1:
begin
OutStr[OutCounter] := #$E2;
OutStr[OutCounter+1]:= #$B1;
OutStr[OutCounter+2]:= #$AE;
NewCharLen := 3;
CharProcessed := True;
end;
$C9B2: NewChar := $C69D;
$C9B5: NewChar := $C69F;
$C9BD:
begin
OutStr[OutCounter] := #$E2;
OutStr[OutCounter+1]:= #$B1;
OutStr[OutCounter+2]:= #$A4;
NewCharLen := 3;
CharProcessed := True;
end;
// 0280 = CA 80
$CA80: NewChar := $C6A6;
$CA83: NewChar := $C6A9;
$CA88: NewChar := $C6AE;
$CA89: NewChar := $C984;
$CA8A: NewChar := $C6B1;
$CA8B: NewChar := $C6B2;
$CA8C: NewChar := $C985;
// 0290 = CA 90
$CA92: NewChar := $C6B7;
//
$CEB1..$CEBF: NewChar := OldChar - $20; // Greek Characters
$CF80..$CF89: NewChar := OldChar - $E0; // Greek Characters

View File

@ -101,6 +101,17 @@ begin
AssertStringOperationUTF8UpperCase('Latin 01D0 UTF8UpperCase', '', 'ǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟ', 'ǏǑǑǓǓǕǕǗǗǙǙǛǛƎǞǞ');
AssertStringOperationUTF8UpperCase('Latin 01E0 UTF8UpperCase', '', 'ǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯ', 'ǠǠǢǢǤǤǦǦǨǨǪǪǬǬǮǮ');
AssertStringOperationUTF8UpperCase('Latin 01F0 UTF8UpperCase', '', 'ǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿ', 'ǰDZDZDZǴǴǶǷǸǸǺǺǼǼǾǾ');
AssertStringOperationUTF8UpperCase('Latin 0200 UTF8UpperCase', '', 'ȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏ', 'ȀȀȂȂȄȄȆȆȈȈȊȊȌȌȎȎ');
AssertStringOperationUTF8UpperCase('Latin 0210 UTF8UpperCase', '', 'ȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟ', 'ȐȐȒȒȔȔȖȖȘȘȚȚȜȜȞȞ');
AssertStringOperationUTF8UpperCase('Latin 0220 UTF8UpperCase', '', 'ȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯ', 'ȠȡȢȢȤȤȦȦȨȨȪȪȬȬȮȮ');
AssertStringOperationUTF8UpperCase('Latin 0230 UTF8UpperCase', '', 'ȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ', 'ȰȰȲȲȴȵȶȷȸȹȺȻȻȽȾⱾ');
AssertStringOperationUTF8UpperCase('Latin 0240 UTF8UpperCase', '', 'ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏ', 'ⱿɁɁɃɄɅɆɆɈɈɊɊɌɌɎɎ');
AssertStringOperationUTF8UpperCase('Latin 0250 UTF8UpperCase', '', 'ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟ', 'ⱯⱭⱰƁƆɕƉƊɘƏɚƐɜɝɞɟ');
AssertStringOperationUTF8UpperCase('Latin 0260 UTF8UpperCase', '', 'ɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ', 'ƓɡɢƔɤꞍɦɧƗƖɪⱢɬɭɮƜ');
AssertStringOperationUTF8UpperCase('Latin 0270 UTF8UpperCase', '', 'ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ', 'ɰⱮƝɳɴƟɶɷɸɹɺɻɼⱤɾɿ');
AssertStringOperationUTF8UpperCase('Latin 0280 UTF8UpperCase', '', 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏ', 'ƦʁʂƩʄʅʆʇƮɄƱƲɅʍʎʏ');
AssertStringOperationUTF8UpperCase('Latin 0290 UTF8UpperCase', '', 'ʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟ', 'ʐʑƷʓʔʕʖʗʘʙʚʛʜʝʞʟ');
AssertStringOperationUTF8UpperCase('Latin 02A0 UTF8UpperCase', '', 'ʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯ', 'ʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯ');
// What shouldnt change
AssertStringOperationUTF8UpperCase('Chinese UTF8UpperCase 1', '', '名字叫嘉英,嘉陵江的嘉,英國的英', '名字叫嘉英,嘉陵江的嘉,英國的英');
@ -160,6 +171,11 @@ begin
AssertStringOperationUTF8LowerCase('Latin 0230 UTF8LowerCase', '', 'ȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ', 'ȱȱȳȳȴȵȶȷȸȹⱥȼȼƚⱦȿ');
AssertStringOperationUTF8LowerCase('Latin 0240 UTF8LowerCase', '', 'ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏ', 'ɀɂɂƀʉʌɇɇɉɉɋɋɍɍɏɏ');
AssertStringOperationUTF8LowerCase('Latin 0250 UTF8LowerCase', '', 'ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟ', 'ɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟ');
AssertStringOperationUTF8LowerCase('Latin 0260 UTF8LowerCase', '', 'ɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ', 'ɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯ');
AssertStringOperationUTF8LowerCase('Latin 0270 UTF8LowerCase', '', 'ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ', 'ɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ');
AssertStringOperationUTF8LowerCase('Latin 0280 UTF8LowerCase', '', 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏ', 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏ');
AssertStringOperationUTF8LowerCase('Latin 0290 UTF8LowerCase', '', 'ʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟ', 'ʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟ');
AssertStringOperationUTF8LowerCase('Latin 02A0 UTF8LowerCase', '', 'ʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯ', 'ʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯ');
AssertStringOperationUTF8LowerCase('Unicode 0400 UTF8LowerCase', '', 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏ', 'ѐёђѓєѕіїјљњћќѝўџ');
AssertStringOperationUTF8LowerCase('Unicode 0410 UTF8LowerCase', '', 'АБВГДЕЖЗИЙКЛМНОП', 'абвгдежзийклмноп');
AssertStringOperationUTF8LowerCase('Unicode 0420 UTF8LowerCase', '', 'РСТУФХЦЧШЩЪЫЬЭЮЯ', 'рстуфхцчшщъыьэюя');