X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F20-mod.t;h=878a72b2234f25a3ca0ba7c03d3c9c5b4072c370;hb=03788848f1b2d570c82eb682bd45bc0d01c5223b;hp=a6c44651b6493757a1921df979477eb5d0b9695c;hpb=cb3b916e0590c6a0b70b60f30304921385462faa;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/t/20-mod.t b/t/20-mod.t index a6c4465..878a72b 100644 --- a/t/20-mod.t +++ b/t/20-mod.t @@ -3,12 +3,11 @@ use strict; use warnings; -use Test::More tests => 13 + 2 * 17; +use Test::More tests => 20 + 2 * 22; use LaTeX::TikZ; -use LaTeX::TikZ::Formatter; -my $tikz = LaTeX::TikZ::Formatter->new( +my $tikz = Tikz->formatter( format => '%d', ); @@ -46,6 +45,27 @@ check $foo, 'one modded raw set', <<'RES'; \draw [color=red] foo ; RES +my $foo2 = eval { + Tikz->raw('foo') + ->mod('->') +}; +is $@, '', 'creating a modded raw set from a string doesn\'t croak'; + +check $foo2, 'one modded raw set from a string', <<'RES'; +\draw [->] foo ; +RES + +sub failed_valid { + my ($tc) = @_; + qr/Validation failed for '\Q$tc\E'/; +} + +eval { + Tikz->raw([ 'fail' ]) + ->mod(Tikz->raw('epic')); +}; +like $@, failed_valid('LaTeX::TikZ::Mod'), 'trying to use a non LTM mod croaks'; + my $width = eval { Tikz->width(25); }; @@ -85,13 +105,25 @@ check $foo, 'one triple modded sequence of raw sets', <<'RES'; \end{scope} RES +my $nested = eval { + Tikz->seq( + Tikz->seq(Tikz->raw("foo")) + ->mod($red) + )->mod($width) +}; +is $@, '', 'creating nested modded sequences doesn\'t croak'; + +check $nested, 'nested modded sequences', <<'RES'; +\draw [line width=4.0pt,color=red] foo ; +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'; +check Tikz->seq($foo, $baz), 'mods folding 1', <<'RES'; \begin{scope} [color=red] \begin{scope} [line width=4.0pt] \draw foo ; @@ -101,7 +133,7 @@ check [ $foo, $baz ], 'mods folding 1', <<'RES'; \end{scope} RES -check [ $baz, $foo ], 'mods folding 2', <<'RES'; +check Tikz->seq($baz, $foo), 'mods folding 2', <<'RES'; \begin{scope} [color=red] \draw baz ; \begin{scope} [line width=4.0pt] @@ -117,7 +149,7 @@ my $qux = eval { }; is $@, '', 'creating another raw set with modded width doesn\'t croak'; -check [ $foo, $baz, $qux ], 'mods folding 3', <<'RES'; +check Tikz->seq($foo, $baz, $qux), 'mods folding 3', <<'RES'; \begin{scope} [color=red] \begin{scope} [line width=4.0pt] \draw foo ; @@ -128,7 +160,7 @@ check [ $foo, $baz, $qux ], 'mods folding 3', <<'RES'; \draw [line width=4.0pt] qux ; RES -check [ $foo, $qux, $baz ], 'mods folding 4', <<'RES'; +check Tikz->seq($foo, $qux, $baz), 'mods folding 4', <<'RES'; \begin{scope} [line width=4.0pt] \begin{scope} [color=red] \draw foo ; @@ -139,7 +171,7 @@ check [ $foo, $qux, $baz ], 'mods folding 4', <<'RES'; \draw [color=red] baz ; RES -check [ $baz, $foo, $qux ], 'mods folding 5', <<'RES'; +check Tikz->seq($baz, $foo, $qux), 'mods folding 5', <<'RES'; \begin{scope} [color=red] \draw baz ; \begin{scope} [line width=4.0pt] @@ -150,7 +182,7 @@ check [ $baz, $foo, $qux ], 'mods folding 5', <<'RES'; \draw [line width=4.0pt] qux ; RES -check [ $baz, $qux, $foo ], 'mods folding 6', <<'RES'; +check Tikz->seq($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] @@ -159,7 +191,7 @@ check [ $baz, $qux, $foo ], 'mods folding 6', <<'RES'; \end{scope} RES -check [ $qux, $foo, $baz ], 'mods folding 7', <<'RES'; +check Tikz->seq($qux, $foo, $baz), 'mods folding 7', <<'RES'; \begin{scope} [line width=4.0pt] \draw qux ; \begin{scope} [color=red] @@ -170,7 +202,7 @@ check [ $qux, $foo, $baz ], 'mods folding 7', <<'RES'; \draw [color=red] baz ; RES -check [ $qux, $baz, $foo ], 'mods folding 8', <<'RES'; +check Tikz->seq($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] @@ -249,7 +281,7 @@ check $seq, 'mod covering 4', <<'RES'; \end{scope} \draw qux ; \end{scope} -\draw [raw3] baz ; +\draw [raw2,raw3] baz ; \end{scope} RES @@ -258,7 +290,7 @@ eval { }; is $@, '', 'creating and adding another width mod doesn\'t croak'; -check $seq, 'mod covering 4', <<'RES'; +check $seq, 'mod covering 5', <<'RES'; \begin{scope} [color=red,raw2] \begin{scope} [line width=4.0pt] \begin{scope} [raw1] @@ -267,6 +299,47 @@ check $seq, 'mod covering 4', <<'RES'; \end{scope} \draw qux ; \end{scope} -\draw [raw3] baz ; +\draw [raw2,raw3] baz ; \end{scope} RES + +my ($fred, $fblue) = eval { + map Tikz->fill($_), qw/red blue/; +}; +is $@, '', 'creating two fill mods doesn\'t croak'; + +$seq = eval { + Tikz->seq( + Tikz->raw("foo") + ->mod($fred) + )->mod($fred); +}; +is $@, '', 'creating a structure with two identical fill mods doesn\'t croak'; + +check $seq, 'mod covering 6', <<'RES'; +\draw [fill=red] foo ; +RES + +$seq = eval { + Tikz->seq( + Tikz->raw("foo") + ->mod($fblue) + )->mod($fred); +}; +is $@, '', 'creating a structure with two different fill mods doesn\'t croak'; + +check $seq, 'mod covering 7', <<'RES'; +\draw [fill=red,fill=blue] foo ; +RES + +$seq = eval { + Tikz->seq( + Tikz->raw("foo") + ->mod($red) + )->mod($fred); +}; +is $@, '', 'creating a structure with color and fill mods doesn\'t croak'; + +check $seq, 'mod covering 8', <<'RES'; +\draw [fill=red,color=red] foo ; +RES