    @Test
    public void testGetKeyValuePairsForKeysPrefixing() throws Exception {

        ConcurrentInvertedRadixTree<Integer> tree = new ConcurrentInvertedRadixTree<Integer>(getNodeFactory());

        tree.put("1234567", 1);
        tree.put("1234568", 2);
        tree.put("123", 3);

        //    ○
        //    └── ○ 123 (3)
        //        └── ○ 456
        //            ├── ○ 7 (1)
        //            └── ○ 8 (2)

        assertEquals("[(123, 3), (1234567, 1)]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("1234567")));
        assertEquals("[(123, 3), (1234567, 1)]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("12345670")));
        assertEquals("[(123, 3), (1234568, 2)]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("1234568")));
        assertEquals("[(123, 3), (1234568, 2)]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("12345680")));
        assertEquals("[(123, 3)]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("1234569")));
        assertEquals("[(123, 3)]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("123456")));
        assertEquals("[(123, 3)]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("123")));
        assertEquals("[]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("12")));
        assertEquals("[]", Iterables.toString(tree.getKeyValuePairsForKeysPrefixing("")));
    }