public void test6to4Addresses() {
    String[] non6to4Addresses = {
      "::1.2.3.4", "3ffe::1", "::", "::1",
    };

    for (int i = 0; i < non6to4Addresses.length; i++) {
      InetAddress ip = InetAddresses.forString(non6to4Addresses[i]);
      assertFalse(InetAddresses.is6to4Address((Inet6Address) ip));
      try {
        InetAddresses.get6to4IPv4Address((Inet6Address) ip);
        fail("IllegalArgumentException expected for '" + non6to4Addresses[i] + "'");
      } catch (IllegalArgumentException expected) {
        // expected behavior
      }
    }

    String valid6to4Address = "2002:0102:0304::1";
    String ipv4Str = "1.2.3.4";

    InetAddress ipv4 = InetAddresses.forString(ipv4Str);
    InetAddress ip = InetAddresses.forString(valid6to4Address);
    assertTrue(InetAddresses.is6to4Address((Inet6Address) ip));
    assertEquals(ipv4, InetAddresses.get6to4IPv4Address((Inet6Address) ip));
  }