mirror of
https://github.com/yanyiwu/cppjieba.git
synced 2025-07-18 00:00:12 +08:00
add unitest for TrieManager
This commit is contained in:
parent
4f21617180
commit
218480aac1
@ -5,7 +5,7 @@ SET(GTEST_ROOT_DIR gtest-1.6.0)
|
|||||||
|
|
||||||
INCLUDE_DIRECTORIES(${GTEST_ROOT_DIR} ${GTEST_ROOT_DIR}/include ${PROJECT_SOURCE_DIR})
|
INCLUDE_DIRECTORIES(${GTEST_ROOT_DIR} ${GTEST_ROOT_DIR}/include ${PROJECT_SOURCE_DIR})
|
||||||
ADD_LIBRARY(gtest STATIC ${GTEST_ROOT_DIR}/src/gtest-all.cc)
|
ADD_LIBRARY(gtest STATIC ${GTEST_ROOT_DIR}/src/gtest-all.cc)
|
||||||
ADD_EXECUTABLE(test.run gtest_main.cc TChineseFilter.cpp TMixSegment.cpp TMPSegment.cpp THMMSegment.cpp TTrie.cpp TFullSegment.cpp TQuerySegment.cpp)
|
ADD_EXECUTABLE(test.run gtest_main.cc TChineseFilter.cpp TMixSegment.cpp TMPSegment.cpp THMMSegment.cpp TTrie.cpp TFullSegment.cpp TQuerySegment.cpp TTrieManager.cpp)
|
||||||
TARGET_LINK_LIBRARIES(gtest pthread)
|
TARGET_LINK_LIBRARIES(gtest pthread)
|
||||||
TARGET_LINK_LIBRARIES(test.run gtest pthread)
|
TARGET_LINK_LIBRARIES(test.run gtest pthread)
|
||||||
|
|
||||||
|
52
test/unittest/TTrieManager.cpp
Normal file
52
test/unittest/TTrieManager.cpp
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#include "src/TrieManager.hpp"
|
||||||
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
|
using namespace CppJieba;
|
||||||
|
|
||||||
|
struct md5_ptr
|
||||||
|
{
|
||||||
|
string md5;
|
||||||
|
Trie* ptr;
|
||||||
|
};
|
||||||
|
typedef struct md5_ptr MD5_PTR;
|
||||||
|
|
||||||
|
static const char* const DICT_FILE[] = {
|
||||||
|
"../test/testdata/jieba.dict.0.utf8",
|
||||||
|
"../test/testdata/jieba.dict.0.utf8",
|
||||||
|
"../test/testdata/jieba.dict.0.utf8",
|
||||||
|
"../test/testdata/jieba.dict.0.1.utf8",
|
||||||
|
"../test/testdata/jieba.dict.0.1.utf8",
|
||||||
|
"../test/testdata/jieba.dict.0.1.utf8",
|
||||||
|
"../test/testdata/jieba.dict.1.utf8",
|
||||||
|
"../test/testdata/jieba.dict.1.utf8",
|
||||||
|
"../test/testdata/jieba.dict.1.utf8",
|
||||||
|
"../test/testdata/jieba.dict.2.utf8",
|
||||||
|
"../test/testdata/jieba.dict.2.utf8",
|
||||||
|
"../test/testdata/jieba.dict.2.utf8",
|
||||||
|
"../test/testdata/jieba.dict.2.utf8"};
|
||||||
|
|
||||||
|
TEST(TrieManagerTest, Test1)
|
||||||
|
{
|
||||||
|
vector<MD5_PTR> tries(sizeof(DICT_FILE)/sizeof(DICT_FILE[0]));
|
||||||
|
for (uint i = 0; i < tries.size(); i++)
|
||||||
|
{
|
||||||
|
tries[i].ptr = TrieManager::getInstance().getTrie(DICT_FILE[i]);
|
||||||
|
ASSERT_TRUE(md5File(DICT_FILE[i], tries[i].md5));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint i = 0; i < tries.size(); i++)
|
||||||
|
{
|
||||||
|
for (uint j = i + 1; j < tries.size(); j++)
|
||||||
|
{
|
||||||
|
if (tries[i].md5 == tries[j].md5)
|
||||||
|
{
|
||||||
|
ASSERT_EQ(tries[i].ptr, tries[j].ptr);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ASSERT_NE(tries[i].ptr, tries[j].ptr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user