t-suw****@users*****
t-suw****@users*****
2007年 9月 9日 (日) 11:59:49 JST
Index: AquaSKK/src/test/Makefile
diff -u AquaSKK/src/test/Makefile:1.1.2.2 AquaSKK/src/test/Makefile:1.1.2.3
--- AquaSKK/src/test/Makefile:1.1.2.2 Sat Sep 8 22:35:19 2007
+++ AquaSKK/src/test/Makefile Sun Sep 9 11:59:49 2007
@@ -5,7 +5,7 @@
VPATH = $(shell find .. -type d -a ! -name CVS -a ! -name test -a ! -name ..) ../..
CXXFLAGS= -g $(foreach dir,$(VPATH),-I$(dir))
-TARGET = SKKKeymapEntry_TEST SKKKeymap_TEST SKKRomanKanaConverter_TEST
+TARGET = SKKKeymapEntry_TEST SKKKeymap_TEST SKKRuleTreeNode_TEST SKKRomanKanaConverter_TEST
define BUILD_template
$(1): $(1).o
@@ -33,4 +33,6 @@
SKKKeymapEntry_TEST.o: SKKKeymapEntry_TEST.cpp SKKKeymapEntry.cpp SKKKeymapEntry.h
SKKKeymap_TEST.o: SKKKeymap_TEST.cpp SKKKeymapEntry.cpp SKKKeymapEntry.h SKKKeymap.cpp SKKKeymap.h
-SKKRomanKanaConverter_TEST.o: SKKRomanKanaConverter_TEST.cpp SKKRomanKanaConverter.h SKKRomanKanaConverter.cpp
+SKKRuleTreeNode_TEST.o: SKKRuleTreeNode_TEST.cpp SKKRuleTreeNode.h SKKRuleTreeNode.cpp
+SKKRomanKanaConverter_TEST.o: SKKRomanKanaConverter_TEST.cpp SKKRomanKanaConverter.h SKKRomanKanaConverter.cpp \
+ SKKRuleTreeNode.h SKKRuleTreeNode.cpp
Index: AquaSKK/src/test/SKKRomanKanaConverter_TEST.cpp
diff -u AquaSKK/src/test/SKKRomanKanaConverter_TEST.cpp:1.1.2.1 AquaSKK/src/test/SKKRomanKanaConverter_TEST.cpp:1.1.2.2
--- AquaSKK/src/test/SKKRomanKanaConverter_TEST.cpp:1.1.2.1 Sat Sep 8 22:35:19 2007
+++ AquaSKK/src/test/SKKRomanKanaConverter_TEST.cpp Sun Sep 9 11:59:49 2007
@@ -1,4 +1,5 @@
#include "SKKRomanKanaConverter.cpp"
+#include "SKKRuleTreeNode.cpp"
#include "jconv.cpp"
int main() {
Index: AquaSKK/src/test/SKKRuleTreeNode_TEST.cpp
diff -u /dev/null AquaSKK/src/test/SKKRuleTreeNode_TEST.cpp:1.1.2.1
--- /dev/null Sun Sep 9 11:59:49 2007
+++ AquaSKK/src/test/SKKRuleTreeNode_TEST.cpp Sun Sep 9 11:59:49 2007
@@ -0,0 +1,44 @@
+#include "SKKRuleTreeNode.cpp"
+
+int main() {
+ SKKRuleTreeNode root;
+ const SKKRuleTreeNode* node;
+ int state;
+
+ node = root.Traverse("a", state);
+ assert(state == -1 && !node);
+
+ root.Add("a", SKKRuleTreeNode("ã", "ã¢", "ï½±", ""));
+ root.Add("kya", SKKRuleTreeNode("ãã", "ãã£", "キャ", ""));
+ root.Add("ka", SKKRuleTreeNode("ã", "ã«", "ï½¶", ""));
+ root.Add("n", SKKRuleTreeNode("ã", "ã³", "ï¾", ""));
+ root.Add("nn", SKKRuleTreeNode("ã", "ã³", "ï¾", ""));
+ root.Add("xx", SKKRuleTreeNode("ã£", "ã", "ッ", "x"));
+
+ node = root.Traverse("m", state);
+ assert(state == -1 && !node);
+
+ node = root.Traverse("a", state);
+ assert(state == 1 && node && node->KanaString(SKK::Hirakana) == "ã");
+
+ node = root.Traverse("kya", state);
+ assert(state == 3 && node && node->KanaString(SKK::Katakana) == "ãã£");
+
+ node = root.Traverse("ki", state);
+ assert(state == 1 && !node);
+
+ node = root.Traverse("ky", state);
+ assert(state == 0 && !node);
+
+ node = root.Traverse("n", state);
+ assert(state == 0 && !node);
+
+ node = root.Traverse("ng", state);
+ assert(state == 1 && node && node->KanaString(SKK::Jisx0201Kana) == "ï¾");
+
+ node = root.Traverse("nn", state);
+ assert(state == 2 && node && node->KanaString(SKK::Jisx0201Kana) == "ï¾");
+
+ node = root.Traverse("xx", state);
+ assert(state == 2 && node && node->NextState() == "x");
+}