Use Math::BigInt for describe_bytestring address display
[p5sagit/Devel-PeekPoke.git] / t / 02describe_bytestring.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 use Devel::PeekPoke qw/describe_bytestring/;
7 use Devel::PeekPoke::Constants qw/BIG_ENDIAN/;
8
9 my $out = BIG_ENDIAN
10   ? <<'EOD'
11              Hex  Dec  Oct    Bin     ASCII      32      32+2          64
12             --------------------------------  -------- -------- ----------------
13 0xadeadbeef   48   72  110  01001000    H     48617220          4861722068617209
14 0xadeadbef0   61   97  141  01100001    a     ___/              _______/
15 0xadeadbef1   72  114  162  01110010    r     __/      72206861 ______/
16 0xadeadbef2   20   32   40  00100000  (SP)    _/       ___/     _____/
17 0xadeadbef3   68  104  150  01101000    h     68617209 __/      ____/
18 0xadeadbef4   61   97  141  01100001    a     ___/     _/       ___/
19 0xadeadbef5   72  114  162  01110010    r     __/      72091337 __/
20 0xadeadbef6   09    9   11  00001001  (HT)    _/       ___/     _/
21 0xadeadbef7   13   19   23  00010011  (DC3)   1337B00B __/      1337B00B1E552021
22 0xadeadbef8   37   55   67  00110111    7     ___/     _/       _______/
23 0xadeadbef9   B0  176  260  10110000  "\260"  __/      B00B1E55 ______/
24 0xadeadbefa   0B   11   13  00001011  (VT)    _/       ___/     _____/
25 0xadeadbefb   1E   30   36  00011110  (RS)    1E552021 __/      ____/
26 0xadeadbefc   55   85  125  01010101    U     ___/     _/       ___/
27 0xadeadbefd   20   32   40  00100000  (SP)    __/      20212121 __/
28 0xadeadbefe   21   33   41  00100001    !     _/       ___/     _/
29 0xadeadbeff   21   33   41  00100001    !              __/
30 0xadeadbf00   21   33   41  00100001    !              _/
31 EOD
32   : <<'EOD'
33              Hex  Dec  Oct    Bin     ASCII      32      32+2          64
34             --------------------------------  -------- -------- ----------------
35 0xadeadbeef   48   72  110  01001000    H     20726148          0972616820726148
36 0xadeadbef0   61   97  141  01100001    a     ___/              _______/
37 0xadeadbef1   72  114  162  01110010    r     __/      61682072 ______/
38 0xadeadbef2   20   32   40  00100000  (SP)    _/       ___/     _____/
39 0xadeadbef3   68  104  150  01101000    h     09726168 __/      ____/
40 0xadeadbef4   61   97  141  01100001    a     ___/     _/       ___/
41 0xadeadbef5   72  114  162  01110010    r     __/      37130972 __/
42 0xadeadbef6   09    9   11  00001001  (HT)    _/       ___/     _/
43 0xadeadbef7   13   19   23  00010011  (DC3)   0BB03713 __/      2120551E0BB03713
44 0xadeadbef8   37   55   67  00110111    7     ___/     _/       _______/
45 0xadeadbef9   B0  176  260  10110000  "\260"  __/      551E0BB0 ______/
46 0xadeadbefa   0B   11   13  00001011  (VT)    _/       ___/     _____/
47 0xadeadbefb   1E   30   36  00011110  (RS)    2120551E __/      ____/
48 0xadeadbefc   55   85  125  01010101    U     ___/     _/       ___/
49 0xadeadbefd   20   32   40  00100000  (SP)    __/      21212120 __/
50 0xadeadbefe   21   33   41  00100001    !     _/       ___/     _/
51 0xadeadbeff   21   33   41  00100001    !              __/
52 0xadeadbf00   21   33   41  00100001    !              _/
53 EOD
54 ;
55
56 is(
57   describe_bytestring( "Har har\t\x13\x37\xb0\x0b\x1e\x55 !!!", 46685601519 ),
58   $out,
59   'describe_bytestring works as expected'
60 );
61
62 done_testing;