1#!perl -w 2 3use strict; 4use Test qw(plan ok); 5plan tests => 33; 6 7use Data::Dump qw(dump); 8 9ok(dump(), "()"); 10ok(dump("abc"), qq("abc")); 11ok(dump("1\n"), qq("1\\n")); 12ok(dump(undef), "undef"); 13ok(dump(0), "0"); 14ok(dump(1234), "1234"); 15ok(dump(12345), "12345"); 16ok(dump(12345678), "12345678"); 17ok(dump(123456789012345), "123456789012345"); 18ok(dump(0.333), "0.333"); 19ok(dump(1/3), qr/^0\.3+\z/); 20ok(dump(-33), "-33"); 21ok(dump(-1.5), "-1.5"); 22ok(dump("0123"), qq("0123")); 23ok(dump(1..2), "(1, 2)"); 24ok(dump(1..3), "(1, 2, 3)"); 25ok(dump(1..4), "(1 .. 4)"); 26ok(dump(1..5,6,8,9), "(1 .. 6, 8, 9)"); 27ok(dump(1..5,4..8), "(1 .. 5, 4 .. 8)"); 28ok(dump([-2..2]), "[-2 .. 2]"); 29ok(dump(["a0" .. "z9"]), qq(["a0" .. "z9"])); 30ok(dump(["x", 0, 1, 2, 3, "a", "b", "c", "d"]), qq(["x", 0 .. 3, "a" .. "d"])); 31ok(dump({ a => 1, b => 2 }), "{ a => 1, b => 2 }"); 32ok(dump({ 1 => 1, 2 => 1, 10 => 1 }), "{ 1 => 1, 2 => 1, 10 => 1 }"); 33ok(dump({ 0.14 => 1, 1.8 => 1, -0.5 => 1 }), qq({ "-0.5" => 1, "0.14" => 1, "1.8" => 1 })); 34ok(dump({ "1,1" => 1, "1,2" => 1 }), qq({ "1,1" => 1, "1,2" => 1 })); 35ok(dump({ a => 1, aa => 2, aaa => join("", "a" .. "z", "a" .. "z")}) . "\n", <<EOT); 36{ 37 a => 1, 38 aa => 2, 39 aaa => "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", 40} 41EOT 42 43ok(dump({ a => 1, aa => 2, aaaaaaaaaaaaaa => join("", "a" .. "z", "a" .. "z")}) . "\n", <<EOT); 44{ 45 a => 1, 46 aa => 2, 47 aaaaaaaaaaaaaa => "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", 48} 49EOT 50 51ok(dump(bless {}, "foo"), "bless({}, \"foo\")"); 52ok(dump(bless [], "foo"), "bless([], \"foo\")"); 53my $sv = []; 54ok(dump(bless \$sv, "foo"), "bless(do{\\(my \$o = [])}, \"foo\")"); 55ok(dump(bless { a => 1, aa => "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", aaa => \$sv}, "foo") . "\n", <<'EOT'); 56bless({ 57 a => 1, 58 aa => "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz", 59 aaa => bless(do{\(my $o = [])}, "foo"), 60}, "foo") 61EOT 62 63 64# stranger stuff 65ok(dump({ a => \&Data::Dump::dump, aa => do {require Symbol; Symbol::gensym()}}), 66 "do {\n require Symbol;\n { a => sub { ... }, aa => Symbol::gensym() };\n}"); 67