public CharTree<Pair<String, JsonFieldInfo>> getFieldsTree() { if (fieldsTree != null) return fieldsTree; fieldsTree = new CharTree<Pair<String, JsonFieldInfo>>(); for (JsonFieldInfo info : fields.fields()) { fieldsTree.append(info.field.getName(), Pair.of(info.field.getName(), info)); } return fieldsTree; } }
@Test public void test1() { String[] strings = new String[]{ "Accept", "Accept-Encoding", "Accept-Language", "Cache-Control", "Connection", "Cookie", "Host", "Pragma", "User-Agent", "Content-Type", "Content-Length", "Close", "Keep-Alive" }; CharTree<String> tree = new CharTree<String>(); for (String string : strings) { tree.append(string, string); } for (String string : strings) { Assert.assertEquals(string, tree.get(string.toCharArray())); } }
@Test public void testStarts() { CharTree<String> tree = new CharTree<String>() .append("foo", "foo") .append("bar", "bar") .append("foobar", "foobar"); Assert.assertEquals("foo", tree.findStarts("foo_".toCharArray())); Assert.assertEquals("bar", tree.findStarts("bar_".toCharArray())); Assert.assertEquals("foo", tree.findStarts("foobar_".toCharArray())); Assert.assertEquals("[foo, foobar]", tree.findAllStarts("foobar_".toCharArray()).toString()); }
@Test public void testEnds() { CharTree<String> tree = new CharTree<String>() .appendReverse("foo", "foo") .appendReverse("bar", "bar") .appendReverse("foobar", "foobar"); Assert.assertEquals("foo", tree.findEnds("_foo".toCharArray())); Assert.assertEquals("bar", tree.findEnds("_bar".toCharArray())); Assert.assertEquals("bar", tree.findEnds("_foobar".toCharArray())); Assert.assertEquals("[bar, foobar]", tree.findAllEnds("_foobar".toCharArray()).toString()); } }
@Test public void test2() { CharTree<String> tree = new CharTree<String>() .append("foo", "foo") .append("bar", "bar") .append("foobar", "foobar") .append("foo", "foo"); Assert.assertEquals("foo", tree.get("foo".toCharArray())); Assert.assertEquals("bar", tree.get("bar".toCharArray())); Assert.assertEquals("foobar", tree.get("foobar".toCharArray())); }