provider_expandIPv6(), [ ['2001:db8:0:0:f:0:0:0', '2001:db8:0:0:f::'], ['2001:db8::ff00:42:8329', '2001:db8::ff00:42:8329'], ['2001:db8:a:bac:8099:d:f:9', '2001:db8:a:bac:8099:d:f:9'], ]); } /** * @dataProvider provider_expandIPv6 */ public function testExpandIpv6(string $expectation, string $ip): void { $this->assertEquals($expectation, PTR::expandIpv6($ip)); } /** * @dataProvider provider_contractIPv6 */ public function testContractIpv6(string $ip, string $expectation): void { $this->assertEquals($expectation, PTR::contractIpv6($ip)); } public function testContractIpv6ThrowsException(): void { $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('"127.0.0.1" is not a valid IPv6 address.'); PTR::contractIpv6('127.0.0.1'); } public function testReverseIpv4(): void { $case_1 = '192.168.1.213'; $exp_1 = '213.1.168.192.in-addr.arpa.'; $this->assertEquals($exp_1, PTR::reverseIpv4($case_1)); } public function testReverseIpv6(): void { $case_1 = '2001:db8::567:89ab'; $case_2 = '8007:ea:19'; $exp_1 = 'b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.'; $exp_2 = '9.1.0.0.a.e.0.0.7.0.0.8.ip6.arpa.'; $this->assertEquals($exp_1, PTR::reverseIpv6($case_1)); $this->assertEquals($exp_2, PTR::reverseIpv6($case_2)); } }__halt_compiler();----SIGNATURE:----Nq6j2c0v1hY7aFilDTzBHzk1O+ML9rkksh5iNxrN4L3fGFqYiTxPHcWMfz3JtkRVIQ5833cuau0kwa/Oc/r+15kNxjLbgwlBUkF0Azn8X26A21ImUU53GIWCRuOjtzy718oyWEcf6sTjAAbM8KK0kmTpP/GY7ImnqRfdjf3W6z7KnkSPy1EQrHUk+8VZC81tqOoEgqmpDu8+a/n/4KUf8cGFS996o9HsGAgNIAZ69m0JZ6Nmpahdm0K8SD5kUT0V1eQw2GDqtisKHnUOiiZBdVjZ4GToW879iJnSjp/M+4VPyhKCVi9/4zMrHwnCtUR0o4wn+ym1KMEtkyMJLlNxAOmL24Addk9kVa0UPJ77M+AERi+7ckg9PLj48Apu59yNYlY1PilDWC4bKuNP68/R8T07sId16eU2V4TyW9aA6mAu6Q8QzxmhLVC10ww5AXSwVtGfodT89qBiDcxuP3ZOaAq8/CHSAWpLLOWDC8TkmB0AxqB49keeY5NY0buDIp/ijmpf4X7Lc4h9M4thaetbWVx6mWBy91+xInkyQrjAlkhdeKK122jlEcXnj6BC9E0irtBgXIavnqvHvjEWSfNLy7h/9n+hvzodzCVUUDbTjJNqi7IiEyWk6C8jXa9dPKL2q4h0bAYDGSE03+Dfb28NFM1wEfsdSWg5acudoBdGVOs=----ATTACHMENT:----NzI2OTU4NTk1MTkxMzA0OSAyODQ1NTcwNDQ1MTM4MDY3IDg5OTI3NjIwODI3MTkxODI=