From 335a7eff4740cbcb3dca08299c37b2d9abdf86fb Mon Sep 17 00:00:00 2001 From: wyy Date: Wed, 18 Dec 2013 22:42:46 -0800 Subject: [PATCH] add THMMSegment.cpp and TMPSegment.cpp for fix little error in using hmmsegment and mpsegment. --- src/HMMSegment.hpp | 2 ++ src/MPSegment.hpp | 1 + test/unittest/CMakeLists.txt | 2 +- test/unittest/THMMSegment.cpp | 19 +++++++++++++++++++ test/unittest/TMPSegment.cpp | 17 +++++++++++++++++ 5 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 test/unittest/THMMSegment.cpp create mode 100644 test/unittest/TMPSegment.cpp diff --git a/src/HMMSegment.hpp b/src/HMMSegment.hpp index 6e2b7b7..1a3f774 100644 --- a/src/HMMSegment.hpp +++ b/src/HMMSegment.hpp @@ -10,6 +10,7 @@ #include "TransCode.hpp" #include "ISegment.hpp" #include "SegmentBase.hpp" +#include "Trie.hpp" namespace CppJieba { @@ -64,6 +65,7 @@ namespace CppJieba return true; } public: + using SegmentBase::cut; bool cut(Unicode::const_iterator begin, Unicode::const_iterator end, vector& res)const { if(!_getInitFlag()) diff --git a/src/MPSegment.hpp b/src/MPSegment.hpp index b0a7bed..81cd45d 100644 --- a/src/MPSegment.hpp +++ b/src/MPSegment.hpp @@ -66,6 +66,7 @@ namespace CppJieba return true; } public: + using SegmentBase::cut; virtual bool cut(Unicode::const_iterator begin, Unicode::const_iterator end, vector& res)const { assert(_getInitFlag()); diff --git a/test/unittest/CMakeLists.txt b/test/unittest/CMakeLists.txt index c94a04d..ad5c23d 100644 --- a/test/unittest/CMakeLists.txt +++ b/test/unittest/CMakeLists.txt @@ -5,7 +5,7 @@ SET(GTEST_ROOT_DIR gtest-1.6.0) INCLUDE_DIRECTORIES(${GTEST_ROOT_DIR} ${GTEST_ROOT_DIR}/include ${PROJECT_SOURCE_DIR}) ADD_LIBRARY(gtest STATIC ${GTEST_ROOT_DIR}/src/gtest-all.cc) -ADD_EXECUTABLE(test.run gtest_main.cc TChineseFilter.cpp TMixSegment.cpp) +ADD_EXECUTABLE(test.run gtest_main.cc TChineseFilter.cpp TMixSegment.cpp TMPSegment.cpp THMMSegment.cpp) TARGET_LINK_LIBRARIES(gtest pthread) TARGET_LINK_LIBRARIES(test.run gtest pthread) diff --git a/test/unittest/THMMSegment.cpp b/test/unittest/THMMSegment.cpp new file mode 100644 index 0000000..c7622a7 --- /dev/null +++ b/test/unittest/THMMSegment.cpp @@ -0,0 +1,19 @@ +#include "src/HMMSegment.hpp" +#include "gtest/gtest.h" + +using namespace CppJieba; + +TEST(HMMSegmentTest, Test1) +{ + HMMSegment segment("../dicts/hmm_model.utf8");; + const char* str = "我来自北京邮电大学。。。 学号 123456"; + const char* res[] = {"我来", "自北京", "邮电大学", "。", "。", "。", " ", "学号", " 123456"}; + //string s; + //vector buf(res, res + sizeof(res)/sizeof(res[0])); + vector words; + ASSERT_EQ(segment.init(), true); + ASSERT_EQ(segment.cut(str, words), true); + //print(words); + EXPECT_EQ(words, vector(res, res + sizeof(res)/sizeof(res[0]))); +} + diff --git a/test/unittest/TMPSegment.cpp b/test/unittest/TMPSegment.cpp new file mode 100644 index 0000000..e8ee8a2 --- /dev/null +++ b/test/unittest/TMPSegment.cpp @@ -0,0 +1,17 @@ +#include "src/MPSegment.hpp" +#include "gtest/gtest.h" + +using namespace CppJieba; + +TEST(MPSegmentTest, Test1) +{ + MPSegment segment("../dicts/jieba.dict.utf8");; + const char* str = "我来自北京邮电大学。。。 学号 123456"; + const char* res[] = {"我", "来自", "北京邮电大学", "。","。","。"," ","学","号", " 123456"}; + vector words; + ASSERT_EQ(segment.init(), true); + ASSERT_EQ(segment.cut(str, words), true); + //print(words); + EXPECT_EQ(words, vector(res, res + sizeof(res)/sizeof(res[0]))); +} +