/
asif-yaml.t
90 lines (78 loc) · 1.55 KB
/
asif-yaml.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
use v6;
use Test;
plan 4;
# Load the module
use Masquerade;
class TestClass {
has $.animal = "monkey";
has $.money = "dollar";
has @.veggies;
has %.cities;
};
my %test-data = {
'simple hash' => {
perl => {a => 1, b => 2, c => 3},
yaml => "a: 1\nb: 2\nc: 3\n",
},
'simple array' => {
perl => [1, 2, 3],
yaml => "- 1\n- 2\n- 3\n",
},
'complex nested: hash array string int float' => {
perl => {
size => "medium",
damage => "high",
affects => [<Houses Barns Cars Chickens Cows>],
attributes => {
twistiness => 100,
color => 'brown/grey',
scariness => 6.234,
speed => {
velocity => '92mph',
direction => 'at YOU!',
}
},
},
yaml => 'size: medium
damage: high
affects:
- Houses
- Barns
- Cars
- Chickens
- Cows
attributes:
twistiness: 100
color: brown/grey
scariness: 6.234
speed:
velocity: 92mph
direction: at YOU!
'
},
'custom Class-based object' => {
perl => TestClass.new(
veggies => <zucchini squash broccoli>,
cities => {
London => 'England',
Durham => 'The United States of America',
}
),
yaml => 'animal: monkey
money: dollar
veggies:
- zucchini
- squash
- broccoli
cities:
London: England
Durham: The United States of America
'
},
}
# Just run the above tests.
for %test-data.kv -> $k, $v {
my $perl = $v<perl>;
my $yaml = $v<yaml>;
ok ($perl but AsIf::YAML eq $yaml), $k;
}