Simpler TreeTrie.isEmpty() method (#9075)
Avoid creating (Key)Set to just test for empty. More test cases
This commit is contained in:
parent
1abaeb6cee
commit
fe74264ecc
|
@ -276,7 +276,31 @@ class TreeTrie<V> extends AbstractTrie<V>
|
|||
@Override
|
||||
public boolean isEmpty()
|
||||
{
|
||||
return keySet().isEmpty();
|
||||
return isEmpty(_root);
|
||||
}
|
||||
|
||||
private boolean isEmpty(Node<V> t)
|
||||
{
|
||||
if (t != null)
|
||||
{
|
||||
if (t._key != null)
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < INDEX; i++)
|
||||
{
|
||||
if (t._nextIndex[i] != null)
|
||||
{
|
||||
if (!isEmpty(t._nextIndex[i]))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (int i = t._nextOther.size(); i-- > 0; )
|
||||
{
|
||||
if (!isEmpty(t._nextOther.get(i)))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -398,6 +398,20 @@ public class TrieTest
|
|||
assertThat(requiredCapacity(Set.of(x, y, z), true), is(1 + 3 * (Character.MAX_VALUE / 2)));
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@MethodSource("emptyImplementations")
|
||||
public void testIsEmpty(AbstractTrie<Integer> trie) throws Exception
|
||||
{
|
||||
assertTrue(trie.isEmpty());
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@MethodSource("implementations")
|
||||
public void testIsNotEmpty(AbstractTrie<Integer> trie) throws Exception
|
||||
{
|
||||
assertFalse(trie.isEmpty());
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@MethodSource("implementations")
|
||||
public void testEmptyKey(AbstractTrie<Integer> trie) throws Exception
|
||||
|
|
Loading…
Reference in New Issue