RadixTrie { static <T> Builder<T> builder() { return new Builder<T>(); } RadixTrie(final Node<T> root); @Override String toString();  }
@Test(expected = IllegalArgumentException.class) public void verifyUnclosedCaptureFails() { RadixTrie.builder(String.class) .insert("a<", "a<"); }
@Test(expected = IllegalArgumentException.class) public void verifyEmptyPathFails() { RadixTrie.builder(String.class) .insert("", ""); }
@Test(expected = IllegalArgumentException.class) public void verifyNonAsciiInsertThrows() { RadixTrie.builder(String.class).insert("" + (char) 128, "foo"); }
@Test(expected = IllegalArgumentException.class) public void verifyNonTerminalPathCaptureThrows() { RadixTrie.builder(String.class).insert("<foo:path>bar", "foo"); }
@Test(expected = IllegalArgumentException.class) public void verifyUnknownCaptureTypeThrows() { RadixTrie.builder(String.class).insert("<foo:bar>", "foo"); }