3 use Test::More tests => 46;
5 use Scalar::Util qw(refaddr);
12 '""' => sub { "foo" },
14 cos => sub { "far side of overload table" },
17 sub new { bless {}, shift };
20 my $x = Stringifies->new;
24 is( "$x", "foo", "stringifies" );
25 is( "$y", $ystr, "stringifies qr//" );
26 is( 0 + $x, 42, "numifies" );
27 is( cos($x), "far side of overload table", "cosinusfies" );
31 is( "$x", overload::StrVal($x), "no stringification" );
32 is( "$y", overload::StrVal($y), "no stringification of qr//" );
33 is( 0 + $x, refaddr($x), "no numification" );
34 is( cos($x), cos(refaddr($x)), "no cosinusfication" );
38 is( "$x", overload::StrVal($x), "no stringification" );
39 is( "$y", overload::StrVal($y), "no stringification of qr//" );
40 is( 0 + $x, refaddr($x), "no numification" );
41 is( cos($x), cos(refaddr($x)), "no cosinusfication" );
48 is( "$x", overload::StrVal($x), "no stringification" );
49 is( "$y", overload::StrVal($y), "no stringification of qr//" );
50 is( 0 + $x, 42, "numifies" );
51 is( cos($x), "far side of overload table", "cosinusfies" );
55 is( "$x", overload::StrVal($x), "no stringification" );
56 is( "$y", overload::StrVal($y), "no stringification of qr//" );
57 is( 0 + $x, refaddr($x), "no numification" );
58 is( cos($x), cos(refaddr($x)), "no cosinusfication" );
63 is( "$x", "foo", "stringifies" );
64 is( "$y", $ystr, "stringifies qr//" );
65 is( 0 + $x, 42, "numifies" );
66 is( cos($x), "far side of overload table", "cosinusfies" );
69 is( "$x", "foo", "stringifies" );
70 is( "$y", $ystr, "stringifies qr//" );
71 is( 0 + $x, refaddr($x), "no numification" );
72 is( cos($x), "far side of overload table", "cosinusfies" );
76 is( "$x", overload::StrVal($x), "no stringification" );
77 is( "$y", overload::StrVal($y), "no stringification of qr//" );
78 is( 0 + $x, refaddr($x), "no numification" );
79 is( cos($x), "far side of overload table", "cosinusfies" );
83 is( "$x", "foo", "stringifies" );
84 is( "$y", $ystr, "stringifies qr//" );
85 is( 0 + $x, 42, "numifies" );
86 is( cos($x), "far side of overload table", "cosinusfies" );
90 is( "$x", "foo", "stringifies" );
91 is( "$y", $ystr, "stringifies qr//" );
92 is( 0 + $x, refaddr($x), "no numification" );
93 is( cos($x), "far side of overload table", "cosinusfies" );
96 is( "$x", "foo", "stringifies" );
97 is( "$y", $ystr, "stringifies qr//" );
98 is( 0 + $x, refaddr($x), "no numification" );
99 is( cos($x), cos(refaddr($x)), "no cosinusfication" );
101 BEGIN { ok(exists($^H{overloading}), "overloading hint present") }
105 BEGIN { ok(!exists($^H{overloading}), "overloading hint removed") }