@Override
    public V getValueForExactAddress(IpPrefix prefix) {

        String prefixString = getPrefixString(prefix);

        if (prefix.isIp4()) {
            return ipv4Tree.getValueForExactKey(prefixString);
        }

        if (prefix.isIp6()) {
            return ipv6Tree.getValueForExactKey(prefixString);
        }

        return null;
    }
@Test
    public void testGetValueForExactAddress() {
        assertThat("IPv4 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv4PrefixKey1), is(1));
        assertThat("IPv4 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv4PrefixKey2), is(2));
        assertThat("IPv4 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv4PrefixKey3), is(3));
        assertThat("IPv4 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv4PrefixKey4), is(4));

        assertThat("IPv6 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv6PrefixKey1), is(11));
        assertThat("IPv6 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv6PrefixKey2), is(12));
        assertThat("IPv6 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv6PrefixKey3), is(13));
        assertThat("IPv6 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv6PrefixKey4), is(14));
        assertThat("IPv6 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv6PrefixKey5), is(15));
        assertThat("IPv6 prefix has not been inserted correctly",
                radixTree.getValueForExactAddress(ipv6PrefixKey6), is(16));
    }