diff --git a/classes/Leth/IPAddress/IPv6/Address.php b/classes/Leth/IPAddress/IPv6/Address.php index 255c399..76520cd 100755 --- a/classes/Leth/IPAddress/IPv6/Address.php +++ b/classes/Leth/IPAddress/IPv6/Address.php @@ -241,7 +241,8 @@ public function format(int $mode): string case IP\Address::FORMAT_COMPACT: $best_pos = $zeros_pos = FALSE; - $best_count = $zeros_count = 0; + $best_count = 1; + $zeros_count = 0; foreach ($parts as $i => $quad) { $parts[$i] = ($quad === '0000') ? '0' : ltrim($quad, '0'); diff --git a/tests/IPv6AddressTest.php b/tests/IPv6AddressTest.php index b1f28ce..3f30941 100644 --- a/tests/IPv6AddressTest.php +++ b/tests/IPv6AddressTest.php @@ -47,6 +47,11 @@ public function providerFactory(): array '::ffff:127:0:0:1', '0:0:0:ffff:127:0:0:1', '0000:0000:0000:ffff:0127:0000:0000:0001'), + array( + '2001:504:0:1:0:3:1898:1', + '2001:504:0:1:0:3:1898:1', + '2001:504:0:1:0:3:1898:1', + '2001:0504:0000:0001:0000:0003:1898:0001'), ); }