chiark / gitweb /
Add 'TOML-Tiny/' from commit 'dab92c92905923c50929c14cc59adadff5b9eedf'
[nailing-cargo.git] / TOML-Tiny / t / toml-test / valid / comments-everywhere.t
1 # File automatically generated from BurntSushi/toml-test
2 use utf8;
3 use Test2::V0;
4 use Data::Dumper;
5 use DateTime;
6 use DateTime::Format::RFC3339;
7 use Math::BigInt;
8 use Math::BigFloat;
9 use TOML::Tiny;
10
11 binmode STDIN,  ':encoding(UTF-8)';
12 binmode STDOUT, ':encoding(UTF-8)';
13
14 my $expected1 = {
15                'group' => {
16                             'answer' => bless( {
17                                                  'name' => '<Custom Code>',
18                                                  'operator' => 'CODE(...)',
19                                                  'code' => sub {
20                                                                BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15\x00\x04\x40\x05\x04\x54"}
21                                                                use strict;
22                                                                no feature ':all';
23                                                                use feature ':5.16';
24                                                                require Math::BigInt;
25                                                                'Math::BigInt'->new('42')->beq($_);
26                                                            },
27                                                  '_file' => '(eval 368)',
28                                                  '_lines' => [
29                                                                6
30                                                              ]
31                                                }, 'Test2::Compare::Custom' ),
32                             'more' => [
33                                         bless( {
34                                                  'code' => sub {
35                                                                BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15\x00\x04\x40\x05\x04\x54"}
36                                                                use strict;
37                                                                no feature ':all';
38                                                                use feature ':5.16';
39                                                                require Math::BigInt;
40                                                                'Math::BigInt'->new('42')->beq($_);
41                                                            },
42                                                  '_file' => '(eval 366)',
43                                                  'name' => '<Custom Code>',
44                                                  'operator' => 'CODE(...)',
45                                                  '_lines' => [
46                                                                6
47                                                              ]
48                                                }, 'Test2::Compare::Custom' ),
49                                         bless( {
50                                                  '_lines' => [
51                                                                6
52                                                              ],
53                                                  '_file' => '(eval 367)',
54                                                  'code' => sub {
55                                                                BEGIN {${^WARNING_BITS} = "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15\x00\x04\x40\x05\x04\x54"}
56                                                                use strict;
57                                                                no feature ':all';
58                                                                use feature ':5.16';
59                                                                require Math::BigInt;
60                                                                'Math::BigInt'->new('42')->beq($_);
61                                                            },
62                                                  'operator' => 'CODE(...)',
63                                                  'name' => '<Custom Code>'
64                                                }, 'Test2::Compare::Custom' )
65                                       ]
66                           }
67              };
68
69
70 my $actual = from_toml(q{# Top comment.
71   # Top comment.
72 # Top comment.
73
74 # [no-extraneous-groups-please]
75
76 [group] # Comment
77 answer = 42 # Comment
78 # no-extraneous-keys-please = 999
79 # Inbetween comment.
80 more = [ # Comment
81   # What about multiple # comments?
82   # Can you handle it?
83   #
84           # Evil.
85 # Evil.
86   42, 42, # Comments within arrays are fun.
87   # What about multiple # comments?
88   # Can you handle it?
89   #
90           # Evil.
91 # Evil.
92 # ] Did I fool you?
93 ] # Hopefully not.
94 });
95
96 is($actual, $expected1, 'comments-everywhere - from_toml') or do{
97   diag 'EXPECTED:';
98   diag Dumper($expected1);
99
100   diag 'ACTUAL:';
101   diag Dumper($actual);
102 };
103
104 is(eval{ from_toml(to_toml($actual)) }, $actual, 'comments-everywhere - to_toml') or do{
105   diag 'INPUT:';
106   diag Dumper($actual);
107
108   diag 'TOML OUTPUT:';
109   diag to_toml($actual);
110
111   diag 'REPARSED OUTPUT:';
112   diag Dumper(from_toml(to_toml($actual)));
113 };
114
115 done_testing;