Newer
Older
NetAddr-IP / Lite / bug2742981
@Michael Robinton Michael Robinton on 21 Oct 2014 3 KB Import of MIKER/NetAddr-IP-4.049 from CPAN.
#!/usr/bin/perl
use Math::BigInt;
use NetAddr::IP::Util qw(
	bcd2bin
	ipv6_n2x
);

my $data = q|
          got: '340282366920938963520000944000010176000'
#     expected: '340282366920938463463374607431768211455'

#   Failed test 'cafe:cafe::/64 Scalar numeric ok'
#   at t/v6-numeric.t line 57.
#          got: '269827015721314205120005577600083392000'
#     expected: '269827015721314068804783158349174669312'

#   Failed test 'cafe:cafe::/64 Array numeric ok for network'
#   at t/v6-numeric.t line 58.
#          got: '269827015721314205120005577600083392000'
#     expected: '269827015721314068804783158349174669312'

#   Failed test 'cafe:cafe::/64 Array numeric ok for mask'
#   at t/v6-numeric.t line 59.
#          got: '340282366920938963520000944000010176000'
#     expected: '340282366920938463444927863358058659840'

#   Failed test 'cafe:cafe::1/64 Scalar numeric ok'
#   at t/v6-numeric.t line 57.
#          got: '269827015721314205120005577600083392000'
#     expected: '269827015721314068804783158349174669313'

#   Failed test 'cafe:cafe::1/64 Array numeric ok for network'
#   at t/v6-numeric.t line 58.
#          got: '269827015721314205120005577600083392000'
#     expected: '269827015721314068804783158349174669313'

#   Failed test 'cafe:cafe::1/64 Array numeric ok for mask'
#   at t/v6-numeric.t line 59.
#          got: '340282366920938963520000944000010176000'
#     expected: '340282366920938463444927863358058659840'

#   Failed test 'dead:beef::/100 Scalar numeric ok'
#   at t/v6-numeric.t line 57.
#          got: '295990755014136299520006003200014752000'
#     expected: '295990755014133383690938178081940045824'

#   Failed test 'dead:beef::/100 Array numeric ok for network'
#   at t/v6-numeric.t line 58.
#          got: '295990755014136299520006003200014752000'
#     expected: '295990755014133383690938178081940045824'

#   Failed test 'dead:beef::/100 Array numeric ok for mask'
#   at t/v6-numeric.t line 59.
#          got: '340282366920938963520000944000010176000'
#     expected: '340282366920938463463374607431499776000'

#   Failed test 'dead:beef::1/100 Scalar numeric ok'
#   at t/v6-numeric.t line 57.
#          got: '295990755014136299520006003200014752000'
#     expected: '295990755014133383690938178081940045825'

#   Failed test 'dead:beef::1/100 Array numeric ok for network'
#   at t/v6-numeric.t line 58.
#          got: '295990755014136299520006003200014752000'
#     expected: '295990755014133383690938178081940045825'

#   Failed test 'dead:beef::1/100 Array numeric ok for mask'
#   at t/v6-numeric.t line 59.
#          got: '340282366920938963520000944000010176000'
#     expected: '340282366920938463463374607431499776000'
|;

my @trial = split("\n",$data);
my @data;
foreach(@trial) {
  if ($_ =~ /(?:got|expected)\:\s+\'(\d+)/) {
    push @data,$1;
  }
}

#for(my $i=0;$i <= $#data;$i +=2) {
#  print $data[$i]," -\n";
#  print $data[$i +1]," =\n";
#  my $x = Math::BigInt->new($data[$i]);
#  my $y = Math::BigInt->new($data[$i +1]);
#  $x->bsub($y);
#  print $x,"\n\n";
#}

for(my $i=0;$i <= $#data;$i +=2) {
  my $x = ipv6_n2x(bcd2bin($data[$i]));
  print $data[$i],"\t=> $x\n";
  my $y = ipv6_n2x(bcd2bin($data[$i +1]));
  print $data[$i +1],"\t=> $y\n";
}