]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blob - t/10-set.t
Basic set tests in t/10-set.t
[perl/modules/LaTeX-TikZ.git] / t / 10-set.t
1 #!perl -T
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 5 + 2 * 4;
7
8 use LaTeX::TikZ;
9 use LaTeX::TikZ::Formatter;
10
11 my $tikz = LaTeX::TikZ::Formatter->new(
12  format => '%d',
13 );
14
15 sub check {
16  my ($set, $desc, $exp) = @_;
17
18  my ($head, $decl, $body) = eval {
19   $tikz->render(ref $set eq 'ARRAY' ? @$set : $set);
20  };
21  is $@, '', "$desc: no error";
22
23  unless (ref $exp eq 'ARRAY') {
24   $exp = [ split /\n/, $exp ];
25  }
26  unshift @$exp, '\begin{tikzpicture}';
27  push    @$exp, '\end{tikzpicture}';
28
29  is_deeply $body, $exp, $desc;
30 }
31
32 my $foo = eval {
33  Tikz->raw('foo');
34 };
35 is $@, '', 'creating a raw set doesn\'t croak';
36
37 check $foo, 'one raw set', <<'RES';
38 \draw foo ;
39 RES
40
41 my $seq2 = eval {
42  Tikz->seq($foo, $foo);
43 };
44 is $@, '', 'creating a 2-sequence doesn\'t croak';
45
46 check $seq2, 'two identical raw sets', <<'RES';
47 \draw foo ;
48 \draw foo ;
49 RES
50
51 my $bar = eval {
52  Tikz->raw('bar');
53 };
54 is $@, '', 'creating another raw set doesn\'t croak';
55
56 $seq2 = eval {
57  Tikz->seq($foo, $bar);
58 };
59 is $@, '', 'creating another 2-sequence doesn\'t croak';
60
61 check $seq2, 'two different raw sets', <<'RES';
62 \draw foo ;
63 \draw bar ;
64 RES
65
66 my $seq3 = eval {
67  Tikz->seq($bar, $seq2, $foo);
68 };
69 is $@, '', 'creating a complex sequence doesn\'t croak';
70
71 check $seq3, 'two different raw sets and a sequence', <<'RES';
72 \draw bar ;
73 \draw foo ;
74 \draw bar ;
75 \draw foo ;
76 RES