Skip to content

Commit

Permalink
Add tests and signatures for processKey
Browse files Browse the repository at this point in the history
  • Loading branch information
cmpitg committed Jun 2, 2012
1 parent b7b9c8c commit c505ae3
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 33 deletions.
8 changes: 8 additions & 0 deletions src/utils.cpp
Expand Up @@ -891,6 +891,14 @@ namespace BoGo {
// return ADD_CHAR;
// }

ustring processKeyUTF8 (ustring text, char key, InputMethodT im) {
return "";
}

ustring processKey (ustring text, char key, InputMethodT im) {
return processKeyUTF8 (text, key, im);
}

// ustring processKey (gchar key, ustring text, InputMethodT im) {
// // Default input method is telex and default charset is UTF8
// ustring ch = _(key);
Expand Down
26 changes: 21 additions & 5 deletions src/utils.hpp
Expand Up @@ -35,9 +35,15 @@ namespace BoGo {
typedef guint Accents;
typedef guint Marks;
typedef guint Transform;
typedef guint CharSetT;
typedef ustringArrayT InputMethodT;
typedef ustring TransformFuncT (ustring, ustring);

const guint NUMBER_OF_CHARSETS = 3;
const CharSetT CHARSET_UTF8 = 0,
CHARSET_TCVN3 = 1,
CHARSET_VNI = 2;

const guint NUMBER_OF_IMS = 4;
const guint IM_SIMPLETELEX = 0,
IM_TELEX = 1,
Expand All @@ -61,11 +67,6 @@ namespace BoGo {

const gchar BACKSPACE_CODE = 8;

// Type of transform
const guint ADD_ACCENT = 0,
ADD_MARK = 1,
ADD_CHAR = 2;

const guint NUMBER_OF_ACCENTS = 6;
const guint GRAVE = 0,
ACUTE = 1,
Expand Down Expand Up @@ -279,4 +280,19 @@ namespace BoGo {
ustring addMarkToText (ustring text, Marks mark, gchar letter = '*');

ustring addChar (ustring str, ustring ch);

ustring processKeyUTF8 (ustring text,
char key,
InputMethodT im = makeStandardIM (IM_SIMPLETELEX));

ustring processKey (ustring text,
char key,
InputMethodT im = makeStandardIM (IM_SIMPLETELEX));

void processKey (const char *text,
char key,
const char *result,
InputMethodT im = makeStandardIM (IM_SIMPLETELEX),
CharSetT charset = CHARSET_UTF8);
}

55 changes: 27 additions & 28 deletions test/test_utils.cpp
Expand Up @@ -139,34 +139,33 @@ TEST (WordHelpers, AddMarkToWord) {
EXPECT_STREQ ("ưu", __(addMarkToWord ("uu", HORN)));
}

// TEST (ProcessKey, ProcessKey) {
// InputMethodT im = makeStandardIM (IM_SIMPLETELEX);
// EXPECT_STREQ(__("mèo"), __(processKey (BACKSPACE_CODE, "mèov", im)));
// EXPECT_STREQ(__("mèo"), __(processKey ('f', "meo", im)));
// EXPECT_STREQ(__("Đèo"), __(processKey ('d', "Dèo", im)));
// EXPECT_STREQ(__("đèo"), __(processKey ('D', "dèo", im)));
// EXPECT_STREQ(__("đEO"), __(processKey ('z', "đÈO", im)));
// EXPECT_STREQ(__("mưA"), __(processKey ('w', "muA", im)));
// EXPECT_STREQ(__("rƯơi"), __(processKey ('w', "rUoi", im)));
// EXPECT_STREQ(__("rUòi"), __(processKey ('f', "rUoi", im)));
// EXPECT_STREQ(__("ruoiw"), __(processKey ('w', "rươi", im)));
// EXPECT_STREQ(__("mỬ"), __(processKey ('w', "mỦ", im)));
// EXPECT_STREQ(__("mỦw"), __(processKey ('w', "mỬ", im)));
// EXPECT_STREQ(__("măn"), __(processKey ('w', "man", im)));
// EXPECT_STREQ(__("mũmmĩm"), __(processKey ('X', "mũmmim", im)));
// EXPECT_STREQ(__("làmănz"), __(processKey ('z', "làmăn", im)));
// EXPECT_STREQ(__("chuyệk"), __(processKey ('j', "chuyêk", im)));
// EXPECT_STREQ(__("quảđur"), __(processKey ('r', "quảđủ", im)));
// EXPECT_STREQ(__("mèokckf"), __(processKey ('f', "mèokck", im)));
// EXPECT_STREQ(__("meO"), __(processKey ('O', "me", im)));
// EXPECT_STREQ (__("làmănz"), __(processKey ('z', "làmăn", im)));
// EXPECT_STREQ (__("chuyệk"), __(processKey ('j', "chuyêk", im))); // FIXME: Need to discuss
// EXPECT_STREQ (__("đèO"), __(processKey ('D',"dèO", im)));
// EXPECT_STREQ (__("geO"), __(processKey ('O', "ge", im)));
// EXPECT_STREQ (__("goa"), __(processKey ('a', "go", im)));
// EXPECT_STREQ (__("gô"), __(processKey ('o', "go", im)));
// // EXPECT_STREQ(__("họa"), __(processKey (BACKSPACE_CODE, "hoạt", im)));
// }
TEST (ProcessKey, ProcessKey) {
EXPECT_STREQ(__("mèo"), __(processKey ("mèov", BACKSPACE_CODE)));
EXPECT_STREQ(__("mèo"), __(processKey ("meo", 'f')));
EXPECT_STREQ(__("Đèo"), __(processKey ("Dèo", 'd')));
EXPECT_STREQ(__("đèo"), __(processKey ("dèo", 'D')));
EXPECT_STREQ(__("đEO"), __(processKey ("đÈO", 'z')));
EXPECT_STREQ(__("mưA"), __(processKey ("muA", 'w')));
EXPECT_STREQ(__("rƯơi"), __(processKey ("rUoi", 'w')));
EXPECT_STREQ(__("rUòi"), __(processKey ("rUoi", 'f')));
EXPECT_STREQ(__("ruoiw"), __(processKey ("rươi", 'w')));
EXPECT_STREQ(__("mỬ"), __(processKey ("mỦ", 'w')));
EXPECT_STREQ(__("mỦw"), __(processKey ("mỬ", 'w')));
EXPECT_STREQ(__("măn"), __(processKey ("man", 'w')));
EXPECT_STREQ(__("mũmmĩm"), __(processKey ("mũmmim", 'X')));
EXPECT_STREQ(__("làmănz"), __(processKey ("làmăn", 'z')));
EXPECT_STREQ(__("chuyệk"), __(processKey ("chuyêk", 'j')));
EXPECT_STREQ(__("quảđur"), __(processKey ("quảđủ", 'r')));
EXPECT_STREQ(__("mèokckf"), __(processKey ("mèokck", 'f')));
EXPECT_STREQ(__("meO"), __(processKey ("me", 'O')));
EXPECT_STREQ (__("làmănz"), __(processKey ("làmăn", 'z')));
EXPECT_STREQ (__("chuyệk"), __(processKey ("chuyêk", 'j'))); // FIXME: Need to discuss
EXPECT_STREQ (__("đèO"), __(processKey ("dèO", 'D')));
EXPECT_STREQ (__("geO"), __(processKey ("ge", 'O')));
EXPECT_STREQ (__("goa"), __(processKey ("go", 'a')));
EXPECT_STREQ (__(""), __(processKey ("go", 'o')));
EXPECT_STREQ(__("họa"), __(processKey ("hoạt", BACKSPACE_CODE)));
}

TEST (MarkAndWord, RemoveAllMarks) {
EXPECT_STREQ ("thuỏ", __(removeAllMarksFromWord ("thuở")));
Expand Down

0 comments on commit c505ae3

Please sign in to comment.