/** * tests whether the common prefix is determined correctly */ public void testCommonPrefix() { String returned = m_Trie.getCommonPrefix(); assertEquals("Common prefixes differ", 0, returned.length()); String expected = "this is a"; Trie t = buildTrie(new String[]{m_Data[0], m_Data[1]}); returned = t.getCommonPrefix(); assertEquals("Common prefixes differ", expected.length(), returned.length()); }
/** * tests whether a different order of strings presented to the Trie will * result in a different Trie (= error). */ public void testDifferentBuildOrder() { // build 2. trie String[] newData = new String[m_Data.length]; for (int i = 0; i < m_Data.length; i++) newData[i] = m_Data[m_Data.length - i - 1]; Trie t2 = buildTrie(m_Data); if (!m_Trie.equals(t2)) fail("Tries differ"); }
/** * tests whether all the string the Trie got built with can be retrieved * again (tests building and retrieval via iterator). */ public void testCorrectBuild() { // retrieve data Iterator<String> iter = m_Trie.iterator(); HashSet<String> set = new HashSet<String>(); while (iter.hasNext()) set.add(iter.next()); // correct size? assertEquals( "size() does not reflect number of added strings", m_Data.length, m_Trie.size()); // different size? assertEquals( "Iterator returns different number of strings", m_Data.length, set.size()); // different elements? for (int i = 0; i < m_Data.length; i++) { if (!set.contains(m_Data[i])) fail("Cannot find string '" + m_Data[i] + "'"); } }
/** * builds a new trie from the given data and returns it * * @param data the data to use for initializing the Trie * @return the built Trie */ public Trie buildTrie(String data) { return buildTrie(new String[]{data}); }
/** * tests the finding of prefixes */ public void testFindPrefixes() { Vector<String> prefixes = m_Trie.getWithPrefix("this"); assertEquals("Different number of prefixes returned", 2, prefixes.size()); prefixes = m_Trie.getWithPrefix("blah"); assertEquals("Different number of prefixes returned", 0, prefixes.size()); }
/** * tests the cloning of a trie */ public void testClone() { // clone trie Trie clone = (Trie) m_Trie.clone(); if (!m_Trie.equals(clone)) fail("Tries differ"); }
/** * Runs the test. * * @param args ignored */ public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } }
/** * tests whether all the string the Trie got built with can be retrieved * again (tests building and retrieval via iterator). */ public void testCorrectBuild() { // retrieve data Iterator<String> iter = m_Trie.iterator(); HashSet<String> set = new HashSet<String>(); while (iter.hasNext()) set.add(iter.next()); // correct size? assertEquals( "size() does not reflect number of added strings", m_Data.length, m_Trie.size()); // different size? assertEquals( "Iterator returns different number of strings", m_Data.length, set.size()); // different elements? for (int i = 0; i < m_Data.length; i++) { if (!set.contains(m_Data[i])) fail("Cannot find string '" + m_Data[i] + "'"); } }
/** * builds a new trie from the given data and returns it * * @param data the data to use for initializing the Trie * @return the built Trie */ public Trie buildTrie(String data) { return buildTrie(new String[]{data}); }
/** * tests the finding of prefixes */ public void testFindPrefixes() { Vector<String> prefixes = m_Trie.getWithPrefix("this"); assertEquals("Different number of prefixes returned", 2, prefixes.size()); prefixes = m_Trie.getWithPrefix("blah"); assertEquals("Different number of prefixes returned", 0, prefixes.size()); }
/** * tests the cloning of a trie */ public void testClone() { // clone trie Trie clone = (Trie) m_Trie.clone(); if (!m_Trie.equals(clone)) fail("Tries differ"); }
/** * Runs the test. * * @param args ignored */ public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } }
/** * tests whether the common prefix is determined correctly */ public void testCommonPrefix() { String returned = m_Trie.getCommonPrefix(); assertEquals("Common prefixes differ", 0, returned.length()); String expected = "this is a"; Trie t = buildTrie(new String[]{m_Data[0], m_Data[1]}); returned = t.getCommonPrefix(); assertEquals("Common prefixes differ", expected.length(), returned.length()); }
/** * tests whether a different order of strings presented to the Trie will * result in a different Trie (= error). */ public void testDifferentBuildOrder() { // build 2. trie String[] newData = new String[m_Data.length]; for (int i = 0; i < m_Data.length; i++) newData[i] = m_Data[m_Data.length - i - 1]; Trie t2 = buildTrie(m_Data); if (!m_Trie.equals(t2)) fail("Tries differ"); }
/** * Called by JUnit before each test method. * * @throws Exception if an error occurs */ protected void setUp() throws Exception { super.setUp(); m_Data = new String[]{ "this is a test", "this is another test", "and something else"}; m_Trie = buildTrie(m_Data); }
/** * tests the retain all method (retains a few elements) */ public void testRetainAllPartial() { Trie retain = buildTrie(m_Data[0]); m_Trie.retainAll(retain); assertEquals("Retaining of 1 string", 1, m_Trie.size()); }
/** * Called by JUnit before each test method. * * @throws Exception if an error occurs */ protected void setUp() throws Exception { super.setUp(); m_Data = new String[]{ "this is a test", "this is another test", "and something else"}; m_Trie = buildTrie(m_Data); }
/** * tests the retain all method (retains a few elements) */ public void testRetainAllPartial() { Trie retain = buildTrie(m_Data[0]); m_Trie.retainAll(retain); assertEquals("Retaining of 1 string", 1, m_Trie.size()); }
/** * tests the remove all method (all elements get removed) */ public void testRemoveAllFull() { Trie remove = buildTrie(m_Data); Trie clone = (Trie) m_Trie.clone(); m_Trie.removeAll(remove); assertEquals("Removing all strings", clone.size(), m_Trie.size() + m_Data.length); }
/** * tests the retain all method (retains all elements) */ public void testRetainAllFull() { Trie retain = buildTrie(m_Data); Trie clone = (Trie) m_Trie.clone(); m_Trie.retainAll(retain); assertEquals("Retaining all strings", clone.size(), m_Trie.size()); }