diff options
author | Tomaž Vajngerl <quikee@gmail.com> | 2014-02-02 15:02:36 +0100 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2014-02-06 09:26:46 +0100 |
commit | 569e5f023ea3dc86988365ac23ceef70b94b177d (patch) | |
tree | 658b894fb5361b09c25dbe5a9ab901b68814ba01 /editeng | |
parent | xo: Constructor feature for XMLVersionListPersistence. (diff) | |
download | core-569e5f023ea3dc86988365ac23ceef70b94b177d.tar.gz core-569e5f023ea3dc86988365ac23ceef70b94b177d.zip |
Add getAllElements (strings) for Trie.
Change-Id: I9603cc51545f72fdb0854f2d76e2326706329000
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/qa/lookuptree/lookuptree_test.cxx | 34 | ||||
-rw-r--r-- | editeng/source/lookuptree/Trie.cxx | 8 |
2 files changed, 39 insertions, 3 deletions
diff --git a/editeng/qa/lookuptree/lookuptree_test.cxx b/editeng/qa/lookuptree/lookuptree_test.cxx index ab2f814f4b12..0bea3a5bdf00 100644 --- a/editeng/qa/lookuptree/lookuptree_test.cxx +++ b/editeng/qa/lookuptree/lookuptree_test.cxx @@ -34,10 +34,12 @@ class LookupTreeTest : public CppUnit::TestFixture public: void testLookupTree(); void testTrie(); + void testTrieGetAllEntries(); CPPUNIT_TEST_SUITE(LookupTreeTest); CPPUNIT_TEST(testLookupTree); CPPUNIT_TEST(testTrie); + CPPUNIT_TEST(testTrieGetAllEntries); CPPUNIT_TEST_SUITE_END(); }; @@ -227,11 +229,11 @@ void LookupTreeTest::testTrie() editeng::Trie trie; std::vector<OUString> suggestions; - trie.findSuggestions( OUString(""), suggestions); + trie.findSuggestions( OUString(), suggestions); CPPUNIT_ASSERT_EQUAL( (size_t) 0, suggestions.size() ); - trie.insert( OUString("") ); - trie.findSuggestions( OUString(""), suggestions); + trie.insert( OUString() ); + trie.findSuggestions( OUString(), suggestions); CPPUNIT_ASSERT_EQUAL( (size_t) 0, suggestions.size() ); trie.findSuggestions( OUString("a"), suggestions); @@ -302,7 +304,33 @@ void LookupTreeTest::testTrie() trie.findSuggestions( OUString(""), suggestions); CPPUNIT_ASSERT_EQUAL( (size_t) 6, suggestions.size() ); suggestions.clear(); +} + +void LookupTreeTest::testTrieGetAllEntries() +{ + editeng::Trie trie; + + std::vector<OUString> entries; + + trie.getAllEntries(entries); + CPPUNIT_ASSERT_EQUAL( (size_t) 0, entries.size() ); + + trie.insert("A"); + trie.getAllEntries(entries); + CPPUNIT_ASSERT_EQUAL( (size_t) 1, entries.size() ); + entries.clear(); + + trie.insert("B"); + trie.insert("C"); + trie.getAllEntries(entries); + CPPUNIT_ASSERT_EQUAL( (size_t) 3, entries.size() ); + entries.clear(); + trie.insert("AA"); + trie.insert("AAA"); + trie.getAllEntries(entries); + CPPUNIT_ASSERT_EQUAL( (size_t) 5, entries.size() ); + entries.clear(); } } // namespace end diff --git a/editeng/source/lookuptree/Trie.cxx b/editeng/source/lookuptree/Trie.cxx index 9314069793ac..a0ca91ee5d30 100644 --- a/editeng/source/lookuptree/Trie.cxx +++ b/editeng/source/lookuptree/Trie.cxx @@ -196,5 +196,13 @@ void Trie::findSuggestions(OUString sWordPart, vector<OUString>& rSuggesstionLis } } +void Trie::getAllEntries(std::vector<OUString>& entries) +{ + if (mRoot != NULL) + { + mRoot->collectSuggestions(OUString(), entries); + } +} + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |