logic: add name delimiter to NameHierarchy

* NameHierarchy now looks like this: <delimiter>\tm<all the rest>
* made new baseclasses for SettingsMigration and SettingsMigrator
* Use the migration system for SqliteBookmarkStorage as well
This commit is contained in:
malte_langkabel
2017-05-16 13:08:12 +02:00
parent 6d0f633d24
commit c551c9a1dd
71 changed files with 692 additions and 523 deletions
+13 -13
View File
@@ -1,8 +1,8 @@
#include "cxxtest/TestSuite.h"
#include "utility/utilityString.h"
#include "data/name/NameHierarchy.h"
#include "data/search/SearchIndex.h"
#include "utility/utilityString.h"
class SearchIndexTestSuite : public CxxTest::TestSuite
{
@@ -11,7 +11,7 @@ public:
void test_search_index_finds_id_of_element_added()
{
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("foo\tsvoid\tp() const").getQualifiedName());
index.addNode(1, NameHierarchy::deserialize("::\tmfoo\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("oo", 0);
@@ -23,7 +23,7 @@ public:
void test_search_index_finds_correct_indices_for_query()
{
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("foo\tsvoid\tp() const").getQualifiedName());
index.addNode(1, NameHierarchy::deserialize("::\tmfoo\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("oo", 0);
@@ -36,8 +36,8 @@ public:
void test_search_index_finds_ids_for_ambiguous_query()
{
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("for\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("fos\tsvoid\tp() const").getQualifiedName());
index.addNode(1, NameHierarchy::deserialize("::\tmfor\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("::\tmfos\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("fo", 0);
@@ -51,7 +51,7 @@ public:
void test_search_index_does_not_find_anything_after_clear()
{
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("foo\tsvoid\tp() const").getQualifiedName());
index.addNode(1, NameHierarchy::deserialize("::\tmfoo\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
index.clear();
std::vector<SearchResult> results = index.search("oo", 0);
@@ -62,8 +62,8 @@ public:
void test_search_index_does_not_find_all_results_when_max_amount_is_limited()
{
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("foo1\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("foo2\tsvoid\tp() const").getQualifiedName());
index.addNode(1, NameHierarchy::deserialize("::\tmfoo1\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("::\tmfoo2\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("oo", 1);
@@ -73,8 +73,8 @@ public:
void test_search_index_query_is_case_insensitive()
{
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("foo1\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("FOO2\tsvoid\tp() const").getQualifiedName());
index.addNode(1, NameHierarchy::deserialize("::\tmfoo1\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("::\tmFOO2\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("oo", 0);
@@ -85,8 +85,8 @@ public:
{
SearchIndex index;
index.addNode(1, NameHierarchy::deserialize("oaabbcc\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("ocbcabc\tsvoid\tp() const").getQualifiedName());
index.addNode(1, NameHierarchy::deserialize("::\tmoaabbcc\tsvoid\tp() const").getQualifiedName());
index.addNode(2, NameHierarchy::deserialize("::\tmocbcabc\tsvoid\tp() const").getQualifiedName());
index.finishSetup();
std::vector<SearchResult> results = index.search("abc", 0);