summaryrefslogtreecommitdiff
path: root/ept/debtags/maint/vocabularymerger.test.h
diff options
context:
space:
mode:
Diffstat (limited to 'ept/debtags/maint/vocabularymerger.test.h')
-rw-r--r--ept/debtags/maint/vocabularymerger.test.h144
1 files changed, 0 insertions, 144 deletions
diff --git a/ept/debtags/maint/vocabularymerger.test.h b/ept/debtags/maint/vocabularymerger.test.h
deleted file mode 100644
index 4443a22..0000000
--- a/ept/debtags/maint/vocabularymerger.test.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Merge different vocabularies together and create the tag and facet indexes
- *
- * Copyright (C) 2003-2007 Enrico Zini <enrico@debian.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include <wibble/test.h>
-#include <ept/debtags/maint/vocabularymerger.h>
-#include <tagcoll/input/string.h>
-
-using namespace std;
-using namespace tagcoll;
-
-struct TestVocabularyMerger {
-
- inline static const char* indexref(const char* index, int id)
- {
- return index + ((int*)index)[id];
- }
-
-
- Test _1()
-{
- string voc1 =
- "Facet: taste\n"
- "Description: Taste\n\n"
- "Tag: taste::sweet\n"
- "Description: Sweet\n\n"
- "Tag: taste::salty\n"
- "Description: Salty\n\n";
- string voc2 =
- "Facet: smell\n"
- "Description: Smell\n\n"
- "Tag: smell::fresh\n"
- "Description: Fresh\n\n"
- "Tag: smell::mold\n"
- "Description: Mold\n\n";
- tagcoll::input::String in1(voc1);
- tagcoll::input::String in2(voc2);
-
- ept::debtags::VocabularyMerger vm;
-
- // Read and merge the two vocabulary samples
- vm.read(in1);
- vm.read(in2);
-
- // Write the merged vocabulary to /dev/null (but generate offsets and indexes in the meantime)
- vm.write("/dev/null");
-
- // Create the facet index
- char facetIndex[vm.facetIndexer().encodedSize()];
- vm.facetIndexer().encode(facetIndex);
-
- // Create the tag index
- char tagIndex[vm.tagIndexer().encodedSize()];
- vm.tagIndexer().encode(tagIndex);
-
- // Check that the facet names have been encoded correctly and in order
- assert_eq(string(indexref(facetIndex, 0) + 4*sizeof(int)), "smell");
- assert_eq(string(indexref(facetIndex, 1) + 4*sizeof(int)), "taste");
-
- // Check the first and last tag indexes for the facets
- assert_eq(((int*)indexref(facetIndex, 0))[2], 0);
- assert_eq(((int*)indexref(facetIndex, 0))[3], 1);
- assert_eq(((int*)indexref(facetIndex, 1))[2], 2);
- assert_eq(((int*)indexref(facetIndex, 1))[3], 3);
-
- // Check that the tag names have been encoded correctly and in order
- assert_eq(string(indexref(tagIndex, 0) + 3*sizeof(int)), "smell::fresh");
- assert_eq(string(indexref(tagIndex, 1) + 3*sizeof(int)), "smell::mold");
- assert_eq(string(indexref(tagIndex, 2) + 3*sizeof(int)), "taste::salty");
- assert_eq(string(indexref(tagIndex, 3) + 3*sizeof(int)), "taste::sweet");
-
- // Check the facet indexes for the tags
- assert_eq(((int*)indexref(tagIndex, 0))[2], 0);
- assert_eq(((int*)indexref(tagIndex, 1))[2], 0);
- assert_eq(((int*)indexref(tagIndex, 2))[2], 1);
- assert_eq(((int*)indexref(tagIndex, 3))[2], 1);
-}
-
-// Test parsing a vocabulary with a tag without a defined facet
- Test _2()
-{
- string voc =
- "Tag: foo::bar\n"
- "Description: Tag without facet\n"
- " VocabularyMerged should behave fine in this case.\n\n";
- tagcoll::input::String in(voc);
-
- ept::debtags::VocabularyMerger vm;
- vm.read(in);
-
- // Write the merged vocabulary to /dev/null (but generate offsets and indexes in the meantime)
- vm.write("/dev/null");
-
- // Create the facet index
- char facetIndex[vm.facetIndexer().encodedSize()];
- vm.facetIndexer().encode(facetIndex);
-
- // Create the tag index
- char tagIndex[vm.tagIndexer().encodedSize()];
- vm.tagIndexer().encode(tagIndex);
-}
-
-// Test parsing a vocabulary with a facet without tags
- Test _3()
-{
- string voc =
- "Facet: empty\n"
- "Description: Facet without tags\n"
- " VocabularyMerged used to segfault in this case.\n\n";
- tagcoll::input::String in(voc);
-
- ept::debtags::VocabularyMerger vm;
- vm.read(in);
-
- // Write the merged vocabulary to /dev/null (but generate offsets and indexes in the meantime)
- vm.write("/dev/null");
-
- // Create the facet index
- char facetIndex[vm.facetIndexer().encodedSize()];
- vm.facetIndexer().encode(facetIndex);
-
- // Create the tag index
- char tagIndex[vm.tagIndexer().encodedSize()];
- vm.tagIndexer().encode(tagIndex);
-}
-
-};
-// vim:set ts=4 sw=4: