#!/bin/sh # -*- mode: cperl; coding: utf-8-unix; -*- eval 'exec ${PERL-perl} -Sx "$0" ${1+"$@"}' if 0; #!perl #line 9 use strict; use warnings; use File::Basename; my $outfile = "t/scope-nested-hex-oct.t"; my $dirname = dirname(__FILE__); chdir $dirname or die "$dirname: chdir failed: $!"; chomp(my $gitroot = `git rev-parse --show-toplevel`); chdir $gitroot or die "$gitroot: chdir failed: $!"; open my($fh), ">", $outfile or die "$outfile: can't open file for writing: $!"; use Algorithm::Combinatorics 'permutations'; my $data = [ ['bigint', 'Math::BigInt' ], ['bigfloat', 'Math::BigFloat'], ['bigrat', 'Math::BigRat' ], ]; print $fh <<'EOF' or die "$outfile: print failed: $!"; # -*- mode: perl; -*- use strict; use warnings; use Test::More; plan skip_all => 'Need at least Perl v5.10.1' if $] < "5.010001"; plan tests => 96; EOF my $iter = permutations([0, 1, 2]); while (my $idxs = $iter -> next()) { my $p0 = $data -> [ $idxs -> [0] ][0]; my $c0 = $data -> [ $idxs -> [0] ][1]; my $p1 = $data -> [ $idxs -> [1] ][0]; my $c1 = $data -> [ $idxs -> [1] ][1]; my $p2 = $data -> [ $idxs -> [2] ][0]; my $c2 = $data -> [ $idxs -> [2] ][1]; print $fh <<"EOF" or die "$outfile: print failed: $!"; note "\\n$p0 -> $p1 -> $p2\\n\\n"; { note "use $p0;"; use $p0; is(ref(hex("1")), "$c0", 'ref(hex("1"))'); is(ref(oct("1")), "$c0", 'ref(oct("1"))'); { note "use $p1;"; use $p1; is(ref(hex("1")), "$c1", 'ref(hex("1"))'); is(ref(oct("1")), "$c1", 'ref(oct("1"))'); { note "use $p2;"; use $p2; is(ref(hex("1")), "$c2", 'ref(hex("1"))'); is(ref(oct("1")), "$c2", 'ref(oct("1"))'); note "no $p2;"; no $p2; is(ref(hex("1")), "", 'ref(hex("1"))'); is(ref(oct("1")), "", 'ref(oct("1"))'); } is(ref(hex("1")), "$c1", 'ref(hex("1"))'); is(ref(oct("1")), "$c1", 'ref(oct("1"))'); note "no $p1;"; no $p1; is(ref(hex("1")), "", 'ref(hex("1"))'); is(ref(oct("1")), "", 'ref(oct("1"))'); } is(ref(hex("1")), "$c0", 'ref(hex("1"))'); is(ref(oct("1")), "$c0", 'ref(oct("1"))'); note "no $p0;"; no $p0; is(ref(hex("1")), "", 'ref(hex("1"))'); is(ref(oct("1")), "", 'ref(oct("1"))'); } EOF } close($fh) or die "$outfile: can't close file after writing: $!"; print "Wrote '$outfile'\n";