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:----jDU1f24nxCW/MDZFatdx9KSRQ+DGiQbcsWYfG++R66LHO6e0LInRty5JSTXUWCP/EVybCP/k/sqC3erBLZn4fXbV1GkTH38ELcUQuezS7bAQtsI9hqoff90xvvQ3TxE5mMdfGbfCwVIVONcB/ep2ZEUra3YLMxjYJ1kpSHLHYzdJWEBr9nHdpTnhpvi/CWlhjkGCrHwZ7KM3iPRsW+t+qWp6NK/F7uJADTK3tHLoD38cGuUKKCtz7tj3gCRd5Yi1/zP+0T9WFh7Wfi9PRZoB1u8rtpVxnpekIuXGYv3QY2EWEJwCHgPo0FSywGJlH11NRc1+2WUm+TrBPI0/hgr0J4omyQhdP9Cily+P/yzOLG1P8toIqk6tbzsi5+36Pfp+WLWAdSSoKeHrTpvJ0mmO8yms7WBQHOOATyrSAHKllW3w9KxZ5awzo/g3NAUFg+qBXCUqfZKRuZNU59c+25UhfL/N0GeVbNHwJn1nSiDkBXd8nQS5ZDUnQ4cOmC6bSnZN10zBaT4pXFdq4vd8zNFPARGdWVl6gGKolJHHXDL2+74K3gEdKSOOF0p99iRxo0HXunS3OjNc5KNz/z4d5fxAHsEdfkkMw/5Se9snw1BeyCA2g+KyE+GZYFfHl7DYmTioSub4CofdO5SdD365BP/YWU6hHJOuZE5KYtP05R1MIVk=----ATTACHMENT:----OTE3NzQ1OTkzODI4NTU3MyA1MDU2MDQwMjY2OTM4MzA1IDg2NDY3NjE5NjYwMjM0Nzg=