### Question:
RegionAddressGenerator { long newAddressFrom(long seed) { long address = seed & (maxAddress - 1); long regionStart = (regionPrefix & ~(maxAddress - 1)); long newAddress = regionStart + address; newAddress -= UnsignedLong.mod(newAddress, CHECK_NUMBER); if (newAddress < regionStart) newAddress += CHECK_NUMBER; if (isValid(newAddress) && !isReserved(newAddress) && doesNotOverlap(newAddress)) { return newAddress; } else { return INVALID_ADDRESS; } } RegionAddressGenerator(CountryRegion region); long newAddress(); boolean isAddressFromRegion(long address);  }### Answer:
@Test public void testOverlapping() { for (long bannedSuffix : rob.bannedSuffixes) { long addressRob = rob.newAddressFrom((bannedSuffix << -20) + 100); assertEquals(".", encode(addressRob)); } }
@Test public void testMinAddressValue() { long addressIe = ied.newAddressFrom(0); assertEquals("iedooooooooli", encode(addressIe)); long addressRo = rohd.newAddressFrom(0); assertEquals("rohdooooooo24", encode(addressRo)); long addressGb = gblnd.newAddressFrom(0); assertEquals("gblndoooooolk", encode(addressGb)); }