@Test
public void normalizeIpv4Prefix() {
- final Ipv4Prefix left = new Ipv4Prefix("192.168.72.1/16");
- final Ipv4Prefix right = new Ipv4Prefix("192.168.0.0/16");
+ assertNormalizedIpv4Prefix("192.168.72.1/32", "192.168.72.1/32");
+ assertNormalizedIpv4Prefix("192.168.0.0/16", "192.168.72.1/16");
+ assertNormalizedIpv4Prefix("192.0.0.0/2", "192.168.72.1/2");
+ assertNormalizedIpv4Prefix("128.0.0.0/1", "192.168.72.1/1");
+ assertNormalizedIpv4Prefix("0.0.0.0/0", "192.168.72.1/0");
+ }
- assertEquals(
- right,
- AddressNormalizationUtil.normalizeIpv4Prefix(left)
- );
+ private static void assertNormalizedIpv4Prefix(final String expected, final String input) {
+ assertEquals(new Ipv4Prefix(expected), AddressNormalizationUtil.normalizeIpv4Prefix(new Ipv4Prefix(input)));
}
@Test
final DottedQuad[] quads = new DottedQuad[IPV4_ADDRESS_LENGTH + 1];
for (int i = 0; i <= IPV4_ADDRESS_LENGTH; ++i) {
- final long maskBits = 0xffffffff << IPV4_ADDRESS_LENGTH - i;
+ final int maskBits = (int) (0xffffffffL << IPV4_ADDRESS_LENGTH - i);
quads[i] = new DottedQuad(new StringBuilder(15)
- .append((maskBits & 0x0000000000ff000000L) >> 24).append('.')
- .append((maskBits & 0x0000000000ff0000) >> 16).append('.')
- .append((maskBits & 0x0000000000ff00) >> 8).append('.')
+ .append(maskBits >>> 24).append('.')
+ .append(maskBits >>> 16 & 0xff).append('.')
+ .append(maskBits >>> 8 & 0xff).append('.')
.append(maskBits & 0xff).toString());
}
@Test
public void extractIpv4AddressMaskTest() {
+ assertAddressMask("0.0.0.0", 0);
assertAddressMask("128.0.0.0", 1);
assertAddressMask("255.0.0.0", 8);
assertAddressMask("255.128.0.0", 9);