X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F20-mod.t;h=256cbdd58881121400e18118690e1db9d0f26ffb;hb=aba26c835113a0332c5480e99f86bfa67111de84;hp=d8407108742225af6388c1554af1609f33badc9d;hpb=ab2e6e400073c35ae59b532ac8a9fb8f40fd1a3c;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/t/20-mod.t b/t/20-mod.t index d840710..256cbdd 100644 --- a/t/20-mod.t +++ b/t/20-mod.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 6 + 2 * 4; +use Test::More tests => 19 + 2 * 20; use LaTeX::TikZ; use LaTeX::TikZ::Formatter; @@ -81,3 +81,211 @@ check $foo, 'one triple modded sequence of raw sets (with duplicates)', <<'RES'; \draw bar ; \end{scope} RES + +my $set = Tikz->raw('wut'); + +my $set_mod = eval { + $set->mod; +}; +is $@, '', 'calling empty mod out of a set doesn\'t croak'; +is "$set_mod", "$set", 'calling empty mod out of a set returns the set'; + +my $new = eval { + $set->mod(Tikz->raw_mod('raw1')); +}; +is $@, '', + 'creating and applying a raw mod on a set in scalar context doesn\'t croak'; +is ref($new), 'LaTeX::TikZ::Set::Mod', 'new set is of the right kind'; +isnt "$new", "$set", 'new set is different from the old one'; + +check $set, '', <<'RES'; +\draw wut ; +RES + +check $new, '', <<'RES'; +\draw [raw1] wut ; +RES + +eval { + $set->mod(Tikz->raw_mod('raw2')); + (); +}; +is $@, '', + 'creating and applying a raw mod on a set in void context doesn\'t croak'; +is ref($new), 'LaTeX::TikZ::Set::Mod', 'new set is of the right kind'; + +check $set, '', <<'RES'; +\draw [raw2] wut ; +RES + +check $new, '', <<'RES'; +\draw [raw1] wut ; +RES + +my $baz = eval { + Tikz->raw('baz') + ->mod($red); +}; +is $@, '', 'creating another colored raw set doesn\'t croak'; + +check [ $foo, $baz ], 'mods folding 1', <<'RES'; +\begin{scope} [color=red] +\begin{scope} [line width=4.0pt] +\draw foo ; +\draw bar ; +\end{scope} +\draw baz ; +\end{scope} +RES + +check [ $baz, $foo ], 'mods folding 2', <<'RES'; +\begin{scope} [color=red] +\draw baz ; +\begin{scope} [line width=4.0pt] +\draw foo ; +\draw bar ; +\end{scope} +\end{scope} +RES + +my $qux = eval { + Tikz->raw('qux') + ->mod($width); +}; +is $@, '', 'creating another raw set with modded width doesn\'t croak'; + +check [ $foo, $baz, $qux ], 'mods folding 3', <<'RES'; +\begin{scope} [color=red] +\begin{scope} [line width=4.0pt] +\draw foo ; +\draw bar ; +\end{scope} +\draw baz ; +\end{scope} +\draw [line width=4.0pt] qux ; +RES + +check [ $foo, $qux, $baz ], 'mods folding 4', <<'RES'; +\begin{scope} [line width=4.0pt] +\begin{scope} [color=red] +\draw foo ; +\draw bar ; +\end{scope} +\draw qux ; +\end{scope} +\draw [color=red] baz ; +RES + +check [ $baz, $foo, $qux ], 'mods folding 5', <<'RES'; +\begin{scope} [color=red] +\draw baz ; +\begin{scope} [line width=4.0pt] +\draw foo ; +\draw bar ; +\end{scope} +\end{scope} +\draw [line width=4.0pt] qux ; +RES + +check [ $baz, $qux, $foo ], 'mods folding 6', <<'RES'; +\draw [color=red] baz ; +\draw [line width=4.0pt] qux ; +\begin{scope} [color=red,line width=4.0pt] +\draw foo ; +\draw bar ; +\end{scope} +RES + +check [ $qux, $foo, $baz ], 'mods folding 7', <<'RES'; +\begin{scope} [line width=4.0pt] +\draw qux ; +\begin{scope} [color=red] +\draw foo ; +\draw bar ; +\end{scope} +\end{scope} +\draw [color=red] baz ; +RES + +check [ $qux, $baz, $foo ], 'mods folding 8', <<'RES'; +\draw [line width=4.0pt] qux ; +\draw [color=red] baz ; +\begin{scope} [color=red,line width=4.0pt] +\draw foo ; +\draw bar ; +\end{scope} +RES + +my $seq = eval { + Tikz->seq($foo, $qux, $baz) + ->mod($red); +}; +is $@, '', 'creating a modded sequence set doesn\'t croak'; + +check $seq, 'mod covering 1', <<'RES'; +\begin{scope} [color=red] +\begin{scope} [line width=4.0pt] +\draw foo ; +\draw bar ; +\draw qux ; +\end{scope} +\draw baz ; +\end{scope} +RES + +my $seq2 = eval { + Tikz->seq($seq, $qux) + ->mod(Tikz->color('blue')); +}; +is $@, '', 'creating another modded sequence set doesn\'t croak'; + +check $seq2, 'mod covering 2', <<'RES'; +\begin{scope} [color=blue] +\begin{scope} [color=red] +\begin{scope} [line width=4.0pt] +\draw foo ; +\draw bar ; +\draw qux ; +\end{scope} +\draw baz ; +\end{scope} +\draw [line width=4.0pt] qux ; +\end{scope} +RES + +eval { + $foo->mod(Tikz->raw_mod('raw1')); + $seq->mod(Tikz->raw_mod('raw2')); +}; +is $@, '', 'creating and adding raw mods doesn\'t croak'; + +check $seq, 'mod covering 3', <<'RES'; +\begin{scope} [color=red,raw2] +\begin{scope} [line width=4.0pt] +\begin{scope} [raw1] +\draw foo ; +\draw bar ; +\end{scope} +\draw qux ; +\end{scope} +\draw baz ; +\end{scope} +RES + +eval { + $baz->mod(Tikz->raw_mod($_)) for qw/raw2 raw3/; +}; +is $@, '', 'creating and adding another raw mod doesn\'t croak'; + +check $seq, 'mod covering 4', <<'RES'; +\begin{scope} [color=red,raw2] +\begin{scope} [line width=4.0pt] +\begin{scope} [raw1] +\draw foo ; +\draw bar ; +\end{scope} +\draw qux ; +\end{scope} +\draw [raw3] baz ; +\end{scope} +RES