init
This commit is contained in:
299
test/Strdifftest.cpp
Normal file
299
test/Strdifftest.cpp
Normal file
@@ -0,0 +1,299 @@
|
||||
#include "dtl_test_common.hpp"
|
||||
#include "comparators.hpp"
|
||||
|
||||
class Strdifftest : public ::testing::Test
|
||||
{
|
||||
protected :
|
||||
dtl_test_typedefs(char, string)
|
||||
typedef struct case_t {
|
||||
sequence A;
|
||||
sequence B;
|
||||
size_t editdis;
|
||||
elemVec lcs_v;
|
||||
sequence lcs_s;
|
||||
sesElemVec ses_seq;
|
||||
uniHunkVec hunk_v;
|
||||
size_t editdis_ses;
|
||||
size_t editdis_uni;
|
||||
string path_rses;
|
||||
string path_rhunks;
|
||||
} case_t;
|
||||
typedef vector< case_t > caseVec;
|
||||
|
||||
caseVec diff_cases;
|
||||
caseVec only_editdis_cases;
|
||||
caseVec custom_cases;
|
||||
|
||||
template < typename comparator >
|
||||
case_t createCase (const sequence a, const sequence b, string test_name, bool onlyEditdis = false) {
|
||||
case_t c;
|
||||
elemVec lcs_v;
|
||||
string diff_name("strdiff");
|
||||
|
||||
Diff< elem, sequence, comparator > diff(a, b);
|
||||
if (onlyEditdis) {
|
||||
diff.onOnlyEditDistance();
|
||||
}
|
||||
|
||||
diff.compose();
|
||||
diff.composeUnifiedHunks();
|
||||
lcs_v = diff.getLcsVec();
|
||||
|
||||
if (test_name != "") {
|
||||
string path_lses = create_path(test_name, diff_name, TYPE_DIFF_SES);
|
||||
string path_rses = create_path(test_name, diff_name, TYPE_DIFF_SES, true);
|
||||
string path_lhunks = create_path(test_name, diff_name, TYPE_DIFF_UNI);
|
||||
string path_rhunks = create_path(test_name, diff_name, TYPE_DIFF_UNI, true);
|
||||
diff_resultset_exist_check(path_lses);
|
||||
diff_resultset_exist_check(path_lhunks);
|
||||
|
||||
create_file< elem, sequence, comparator >(path_rses, diff, TYPE_DIFF_SES);
|
||||
create_file< elem, sequence, comparator >(path_rhunks, diff, TYPE_DIFF_UNI);
|
||||
|
||||
c.editdis_ses = cal_diff_uni(path_lses, path_rses);
|
||||
c.editdis_uni = cal_diff_uni(path_lhunks, path_rhunks);
|
||||
c.path_rses = path_rses;
|
||||
c.path_rhunks = path_rhunks;
|
||||
}
|
||||
|
||||
c.A = a;
|
||||
c.B = b;
|
||||
c.editdis = diff.getEditDistance();
|
||||
c.lcs_s = sequence(lcs_v.begin(), lcs_v.end());
|
||||
c.ses_seq = diff.getSes().getSequence();
|
||||
c.hunk_v = diff.getUniHunks();
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
void SetUp(void) {
|
||||
diff_cases.push_back(createCase< Compare< elem > >("abc", "abd", "diff_test0"));
|
||||
diff_cases.push_back(createCase< Compare< elem > >("acbdeacbed", "acebdabbabed", "diff_test1"));
|
||||
diff_cases.push_back(createCase< Compare< elem > >("abcdef", "dacfea", "diff_test2"));
|
||||
diff_cases.push_back(createCase< Compare< elem > >("abcbda", "bdcaba", "diff_test3"));
|
||||
diff_cases.push_back(createCase< Compare< elem > >("bokko", "bokkko", "diff_test4"));
|
||||
diff_cases.push_back(createCase< Compare< elem > >("", "", "diff_test5"));
|
||||
diff_cases.push_back(createCase< Compare< elem > >("a", "", "diff_test6"));
|
||||
diff_cases.push_back(createCase< Compare< elem > >("", "b", "diff_test7"));
|
||||
diff_cases.push_back(createCase< Compare< elem > >("acbdeaqqqqqqqcbed", "acebdabbqqqqqqqabed", "diff_test8"));
|
||||
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("abc", "abd", "", true));
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("acbdeacbed", "acebdabbabed", "", true));
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("abcdef", "dacfea", "", true));
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("abcbda", "bdcaba", "", true));
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("bokko", "bokkko", "", true));
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("", "", "", true));
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("a", "", "", true));
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("", "b", "", true));
|
||||
only_editdis_cases.push_back(createCase< Compare< elem > >("acbdeaqqqqqqqcbed", "acebdabbqqqqqqqabed", "", true));
|
||||
|
||||
custom_cases.push_back(createCase< CaseInsensitive >("abc", "Abc", "custom_test0"));
|
||||
}
|
||||
|
||||
void TearDown () {
|
||||
for_each(diff_cases.begin(), diff_cases.end(), Remover< case_t >());
|
||||
for_each(custom_cases.begin(), custom_cases.end(), Remover< case_t >());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Strdifftest
|
||||
* check list is following
|
||||
* - editdistance
|
||||
* - LCS
|
||||
* - SES
|
||||
* - Unified Format Difference
|
||||
* - onOnlyEditDistance
|
||||
*/
|
||||
|
||||
TEST_F (Strdifftest, diff_test0) {
|
||||
|
||||
EXPECT_EQ(2, diff_cases[0].editdis);
|
||||
|
||||
EXPECT_EQ("ab", diff_cases[0].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[0].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[0].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, diff_test1) {
|
||||
EXPECT_EQ(6, diff_cases[1].editdis);
|
||||
|
||||
EXPECT_EQ("acbdabed", diff_cases[1].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[1].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[1].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, diff_test2) {
|
||||
EXPECT_EQ(6, diff_cases[2].editdis);
|
||||
|
||||
EXPECT_EQ("acf", diff_cases[2].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[2].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[2].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, diff_test3) {
|
||||
EXPECT_EQ(4, diff_cases[3].editdis);
|
||||
|
||||
EXPECT_EQ("bcba", diff_cases[3].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[3].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[3].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, diff_test4) {
|
||||
EXPECT_EQ(1, diff_cases[4].editdis);
|
||||
|
||||
EXPECT_EQ("bokko", diff_cases[4].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[4].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[4].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, diff_test5) {
|
||||
EXPECT_EQ(0, diff_cases[5].editdis);
|
||||
|
||||
EXPECT_EQ("", diff_cases[5].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[5].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[5].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, diff_test6) {
|
||||
EXPECT_EQ(1, diff_cases[6].editdis);
|
||||
|
||||
EXPECT_EQ("", diff_cases[6].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[6].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[6].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, diff_test7) {
|
||||
EXPECT_EQ(1, diff_cases[7].editdis);
|
||||
|
||||
EXPECT_EQ("", diff_cases[7].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[7].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[7].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, diff_test8) {
|
||||
EXPECT_EQ(6, diff_cases[8].editdis);
|
||||
|
||||
EXPECT_EQ("acbdaqqqqqqqbed", diff_cases[8].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[8].editdis_ses);
|
||||
|
||||
ASSERT_EQ(0, diff_cases[8].editdis_uni);
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test0) {
|
||||
EXPECT_EQ(2, only_editdis_cases[0].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[0].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[0].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[0].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test1) {
|
||||
EXPECT_EQ(6, only_editdis_cases[1].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[1].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[1].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[1].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test2) {
|
||||
EXPECT_EQ(6, only_editdis_cases[2].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[2].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[2].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[2].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test3) {
|
||||
EXPECT_EQ(4, only_editdis_cases[3].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[3].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[3].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[3].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test4) {
|
||||
EXPECT_EQ(1, only_editdis_cases[4].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[4].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[4].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[4].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test5) {
|
||||
EXPECT_EQ(0, only_editdis_cases[5].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[5].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[5].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[5].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test6) {
|
||||
EXPECT_EQ(1, only_editdis_cases[6].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[6].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[6].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[6].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test7) {
|
||||
EXPECT_EQ(1, only_editdis_cases[7].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[7].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[7].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[7].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, only_editdis_test8) {
|
||||
EXPECT_EQ(6, only_editdis_cases[8].editdis);
|
||||
|
||||
EXPECT_EQ("", only_editdis_cases[8].lcs_s);
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[8].ses_seq.empty());
|
||||
|
||||
ASSERT_TRUE(only_editdis_cases[8].hunk_v.empty());
|
||||
}
|
||||
|
||||
TEST_F (Strdifftest, custom_comparator_test0) {
|
||||
EXPECT_EQ(0, custom_cases[0].editdis);
|
||||
|
||||
EXPECT_EQ("abc", custom_cases[0].lcs_s);
|
||||
|
||||
ASSERT_EQ(0, custom_cases[0].editdis_ses);
|
||||
|
||||
ASSERT_TRUE(custom_cases[0].hunk_v.empty());
|
||||
}
|
||||
Reference in New Issue
Block a user