6 use Test::More tests => 8 + 2 * 16;
11 use LaTeX::TikZ::TestHelper;
13 using Tikz->formatter(
17 my $clip1 = Tikz->raw('clip1');
18 my $clip2 = Tikz->raw('clip2');
24 is $@, '', 'creating a clipping a raw path with ->clip doesn\'t croak';
26 check $foo, 'one clipped raw set', <<'RES';
35 ->mod(Tikz->clip(Tikz->raw('clip1')));
37 is $@, '', 'creating a clipping a raw path with ->mod doesn\'t croak';
39 check $bar, 'another clipped raw set', <<'RES';
46 my $seq = Tikz->seq($foo, $bar);
48 check $seq, 'mods folding with clips 1', <<'RES';
56 my $baz = Tikz->raw('baz')
59 check Tikz->seq($seq, $baz), 'mods folding with clips 2', <<'RES';
71 check Tikz->seq($baz, $seq), 'mods folding with clips 3', <<'RES';
83 my $seq2 = Tikz->seq($seq, $baz)
86 check $seq2, 'mods folding with clips 4', <<'RES';
98 $seq2 = Tikz->seq($seq, $baz)
101 check $seq2, 'mods folding with clips 5', <<'RES';
115 check $seq2, 'mods folding with clips 6', <<'RES';
127 $seq2->mod(Tikz->color('red'));
129 check $seq2, 'mods folding with clips 7', <<'RES';
130 \begin{scope} [color=red]
142 $seq->layer('bottom');
144 check $seq2, 'mods folding with clips and layers', <<'RES';
145 \begin{pgfonlayer}{top}
146 \begin{scope} [color=red]
150 \begin{pgfonlayer}{bottom}
151 \begin{scope} [color=red]
167 my $b = Tikz->point(4, 2);
168 my $c = Tikz->point(1, 3);
169 my $d = Tikz->point(2, 1);
171 my $r1 = Tikz->rectangle($a, $b);
172 my $r2 = Tikz->rectangle($c, $d);
180 is $@, '', 'two intersecting rectangle clips doesn\'t croak';
182 check $seq, 'two intersecting rectangle clips', <<'RES';
184 \clip (1cm,3cm) rectangle (2cm,1cm) ;
186 \clip (0cm,0cm) rectangle (4cm,2cm) ;
192 $r2 = Tikz->rectangle($a, $d); # $r2 is a subset of $r1
200 is $@, '', 'two overlapping rectangle clips 1 doesn\'t croak';
202 check $seq, 'two overlapping rectangle clips 1', <<'RES';
204 \clip (0cm,0cm) rectangle (2cm,1cm) ;
215 is $@, '', 'two overlapping rectangle clips 2 doesn\'t croak';
217 check $seq, 'two overlapping rectangle clips 2', <<'RES';
219 \clip (0cm,0cm) rectangle (4cm,2cm) ;
221 \clip (0cm,0cm) rectangle (2cm,1cm) ;
227 my $c1 = Tikz->circle($a, 2);
228 my $c2 = Tikz->circle($d, 3);
236 is $@, '', 'two intersecting circle clips doesn\'t croak';
238 check $seq, 'two intersecting circle clips', <<'RES';
240 \clip (2cm,1cm) circle (3cm) ;
242 \clip (0cm,0cm) circle (2cm) ;
248 $c2 = Tikz->circle($a, 1); # $c2 is a subset of $c1
256 is $@, '', 'two overlapping circle clips 1 doesn\'t croak';
258 check $seq, 'two overlapping circle clips 1', <<'RES';
260 \clip (0cm,0cm) circle (1cm) ;
271 is $@, '', 'two overlapping circle clips 2 doesn\'t croak';
273 check $seq, 'two overlapping circle clips 2', <<'RES';
275 \clip (0cm,0cm) circle (2cm) ;
277 \clip (0cm,0cm) circle (1cm) ;