Tomotaka SUWA
t-suw****@users*****
2006年 12月 30日 (土) 15:52:55 JST
Index: AquaSKK/tests/Makefile
diff -u /dev/null AquaSKK/tests/Makefile:1.1.2.1
--- /dev/null Sat Dec 30 15:52:55 2006
+++ AquaSKK/tests/Makefile Sat Dec 30 15:52:55 2006
@@ -0,0 +1,31 @@
+# $Id: Makefile,v 1.1.2.1 2006/12/30 06:52:55 t-suwa Exp $
+
+#
+# Makefile for Unit Test
+#
+
+TARGET = SKKCandidateTEST SKKOkuriHintTEST SKKEntryTEST
+CXXFLAGS= -I.. -g
+
+all: $(TARGET)
+
+check: all
+ for i in $(TARGET); do ./$$i; done;
+
+clean:
+ rm -f *.o $(TARGET)
+
+###
+### for Dictionary.h
+###
+
+SKKCandidateTEST: SKKCandidateTEST.o
+ $(CXX) -o $@ $<
+
+SKKOkuriHintTEST: SKKOkuriHintTEST.o
+ $(CXX) -o $@ $<
+
+SKKEntryTEST: SKKEntryTEST.o
+ $(CXX) -o $@ $<
+
+SKKCandidateTEST.o SKKOkuriHintTEST.o SKKEntryTEST.o: ../Dictionary.h
Index: AquaSKK/tests/SKKCandidateTEST.cpp
diff -u /dev/null AquaSKK/tests/SKKCandidateTEST.cpp:1.1.2.1
--- /dev/null Sat Dec 30 15:52:55 2006
+++ AquaSKK/tests/SKKCandidateTEST.cpp Sat Dec 30 15:52:55 2006
@@ -0,0 +1,34 @@
+#include <cassert>
+#include <iostream>
+#include "Dictionary.h"
+
+int main() {
+ SKKCandidate c1;
+
+ assert(c1.IsEmpty());
+ assert(c1.Word().empty());
+ assert(c1.Annotation().empty());
+ assert(c1.Description().empty());
+
+ SKKCandidate c2("abc", "annotation");
+
+ assert(!c2.IsEmpty());
+ assert(c2.Word() == "abc");
+ assert(c2.Annotation() == "annotation");
+ assert(c2.Description() == "abc;annotation");
+ assert(!(c1 == c2));
+
+ SKKCandidate c3("abc;annotation2");
+
+ assert(!c3.IsEmpty());
+ assert(c3.Word() == "abc");
+ assert(c3.Annotation() == "annotation2");
+ assert(c3.Description() == "abc;annotation2");
+ assert(c2 == c3);
+
+ SKKCandidate c4(c3);
+
+ assert(c3 == c4);
+
+ return 0;
+}
Index: AquaSKK/tests/SKKEntryTEST.cpp
diff -u /dev/null AquaSKK/tests/SKKEntryTEST.cpp:1.1.2.1
--- /dev/null Sat Dec 30 15:52:55 2006
+++ AquaSKK/tests/SKKEntryTEST.cpp Sat Dec 30 15:52:55 2006
@@ -0,0 +1,108 @@
+#include <cassert>
+#include <iostream>
+#include "Dictionary.h"
+
+int main() {
+ SKKEntry e1 = SKKEntry::ParseOkuriNasi("key", "/abc/def/ghi/");
+
+ assert(e1.Key() == "key");
+ assert(e1.Candidate() == "/abc/def/ghi/");
+ assert(e1.Candidate(':') == ":abc:def:ghi:");
+ assert(e1.Join() == "/abc/def/ghi/");
+ assert(e1.Join(':') == ":abc:def:ghi:");
+ assert(e1.Description() == "key /abc/def/ghi/");
+ assert(e1.First() == SKKCandidate("abc"));
+ assert(e1.Next() == SKKCandidate("def"));
+ assert(e1.Next() == SKKCandidate("ghi"));
+ assert(e1.Count() == 3);
+ assert(e1.FirstHint().IsEmpty());
+ assert(e1.NextHint().IsEmpty());
+ assert(e1.HintCount() == 0);
+
+ e1 = SKKEntry::ParseOkuriAri("key", "/abc/def/ghi/[a/abc/def/]/[b/def/ghi/]/");
+
+ assert(e1.Key() == "key");
+ assert(e1.Candidate() == "/abc/def/ghi/[a/abc/def/]/[b/def/ghi/]/");
+ assert(e1.Candidate(':') == ":abc:def:ghi:[a/abc/def/]:[b/def/ghi/]:");
+ assert(e1.Join() == "/abc/def/ghi/[a/abc/def/]/[b/def/ghi/]/");
+ assert(e1.Join(':') == ":abc:def:ghi:[a/abc/def/]:[b/def/ghi/]:");
+ assert(e1.Description() == "key /abc/def/ghi/[a/abc/def/]/[b/def/ghi/]/");
+ assert(e1.First() == SKKCandidate("abc"));
+ assert(e1.Next() == SKKCandidate("def"));
+ assert(e1.Next() == SKKCandidate("ghi"));
+ assert(e1.Count() == 3);
+ assert(e1.FirstHint().Word() == "[a/abc/def/]");
+ assert(e1.NextHint().Word() == "[b/def/ghi/]");
+ assert(e1.HintCount() == 2);
+
+ e1 = SKKEntry::ParseOkuriNasi("key", "/abc/");
+ SKKEntry e2 = SKKEntry::ParseOkuriNasi("key", "/def/");
+
+ e1.Add(e2);
+ assert(e1.Join() == "/abc/def/");
+
+ e1.AddHint(SKKOkuriHint("a", SKKCandidate("abc")));
+
+ assert(e1.Join() == "/abc/def/[a/abc/]/");
+
+ e1 = SKKEntry::CreateOkuriNasi("key");
+ e1.Add(SKKCandidate("abc"), "a");
+ e1.Add(SKKCandidate("def"), "b");
+ assert(e1.Join() == "/abc/def/[a/abc/]/[b/def/]/");
+
+ e2 = SKKEntry::CreateOkuriNasi("key");
+ e2.Add(SKKCandidate("ABC"), "A");
+ e2.Add(SKKCandidate("DEF"), "B");
+ e2.Add(SKKCandidate("GHI"), "A");
+ e1.Add(e2);
+
+ assert(e1.Join() == "/abc/def/ABC/DEF/GHI/[a/abc/]/[b/def/]/[A/ABC/GHI/]/[B/DEF/]/");
+
+ e1.Add(SKKCandidate("xyz"));
+
+ assert(e1.Join() == "/abc/def/ABC/DEF/GHI/xyz/[a/abc/]/[b/def/]/[A/ABC/GHI/]/[B/DEF/]/");
+
+ e1.Remove(SKKCandidate("GHI"));
+
+ assert(e1.Join() == "/abc/def/ABC/DEF/xyz/[a/abc/]/[b/def/]/[A/ABC/]/[B/DEF/]/");
+
+ e1.Remove(SKKCandidate("ABC"));
+ e1.Remove(SKKCandidate("DEF"));
+
+ assert(e1.Join() == "/abc/def/xyz/[a/abc/]/[b/def/]/");
+
+ e1.Update(SKKCandidate("xyz"));
+
+ assert(e1.Join() == "/xyz/abc/def/[a/abc/]/[b/def/]/");
+
+ e1.Update(SKKCandidate("abc"), "b");
+
+ assert(e1.Join() == "/abc/xyz/def/[a/abc/]/[b/abc/def/]/");
+
+ e1.Remove(SKKCandidate("abc"));
+
+ assert(e1.Join() == "/xyz/def/[b/def/]/");
+
+ SKKEntry e3 = SKKEntry::ParseOkuriNasi("ããã", "/æ¼¢å[3b][20][2f]/[5b]宿²»/");
+
+ assert(e3.Join() == "/æ¼¢å[3b][20][2f]/[5b]宿²»/");
+
+ SKKEntry e4 = SKKEntry::ParseOkuriAri("ããk", "/大/å¤/å¤;ãå¤ãã®ç°ä½å/");
+
+ assert(e4.Candidate() == "/大/å¤/å¤;ãå¤ãã®ç°ä½å/");
+ assert(e4.Join() == "/大/å¤/å¤/");
+
+ SKKEntry e5 = SKKEntry::ParseOkuriNasi("suwa", "/Tomotaka SUWA <t.suw****@mac*****>/");
+
+ assert(e5.Join() == "/Tomotaka SUWA <t.suw****@mac*****>/");
+
+ SKKEntry e6 = SKKEntry::ParseOkuriNasi("key", "//abc///def///");
+
+ assert(e6.Join() == "/abc/def/");
+
+ SKKEntry e7 = SKKEntry::ParseOkuriAri("key", "///abc///def/[a///abc///def///]//");
+
+ assert(e7.Candidate() == "/abc/def/[a/abc/def/]/");
+
+ return 0;
+}
Index: AquaSKK/tests/SKKOkuriHintTEST.cpp
diff -u /dev/null AquaSKK/tests/SKKOkuriHintTEST.cpp:1.1.2.1
--- /dev/null Sat Dec 30 15:52:55 2006
+++ AquaSKK/tests/SKKOkuriHintTEST.cpp Sat Dec 30 15:52:55 2006
@@ -0,0 +1,52 @@
+#include <cassert>
+#include <iostream>
+#include "Dictionary.h"
+
+int main() {
+ SKKOkuriHint h1;
+
+ assert(h1.IsEmpty());
+ assert(h1.Kana().empty());
+ assert(h1.First().IsEmpty());
+ assert(h1.Next().IsEmpty());
+ assert(h1.Count() == 0);
+ assert(h1.Description().empty());
+ assert(h1.Word().empty());
+
+ h1.SetKana("a");
+ assert(h1.Kana() == "a");
+
+ h1.Add(SKKCandidate("abc;123"));
+ h1.Add(SKKCandidate("def;456"));
+ h1.Add(SKKCandidate("ghi;789"));
+
+ assert(h1.Description() == "[a/abc;123/def;456/ghi;789/]");
+ assert(h1.Word() == "[a/abc/def/ghi/]");
+
+ h1.Update(SKKCandidate("def;!@#"));
+
+ assert(h1.Description() == "[a/def;!@#/abc;123/ghi;789/]");
+ assert(h1.Word() == "[a/def/abc/ghi/]");
+
+ h1.Remove(SKKCandidate("ghi"));
+
+ assert(h1.Word() == "[a/def/abc/]");
+
+ h1.Remove(SKKCandidate("def"));
+
+ assert(h1.Word() == "[a/abc/]");
+
+ h1.Remove(SKKCandidate("abc"));
+
+ assert(h1.Word().empty());
+
+ SKKOkuriHint h2("a/abc/def/ghi/");
+
+ assert(h2.Word() == "[a/abc/def/ghi/]");
+
+ SKKOkuriHint h3("aabc//");
+
+ assert(h3.Word().empty());
+
+ return 0;
+}