X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F30-functor.t;h=bdade4b6c6257b1686636a263258de9d3e00582f;hb=33b0a6db16fd5b70df1c151ff720bd07fbf34bdd;hp=aff37308edab349970f788ef6505365fc0f116e3;hpb=d30c4d3c5ead74ef53cf141f02e5d397f27f4f0f;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/t/30-functor.t b/t/30-functor.t index aff3730..bdade4b 100644 --- a/t/30-functor.t +++ b/t/30-functor.t @@ -1,9 +1,9 @@ -#!perl +#!perl -T use strict; use warnings; -use Test::More tests => 4 + 2 * 4; +use Test::More tests => 10 + 2 * 7; use LaTeX::TikZ; @@ -90,7 +90,7 @@ RES my $strip = eval { Tikz->functor( - 'LaTeX::TikZ::Mod' => sub { return }, + '+LaTeX::TikZ::Mod' => sub { return }, ); }; is $@, '', 'creating a stripper doesn\'t croak'; @@ -121,3 +121,59 @@ check $seq3, 'the stripped sequence', <<'RES'; \draw (1cm,1cm) ; \draw (-2cm,1cm) -- (2cm,1cm) ; RES + +my $special = eval { + Tikz->functor( + '+LaTeX::TikZ::Mod' => sub { die "mod\n" }, + '+LaTeX::TikZ::Set' => sub { die "set\n" }, + ); +}; +is $@, '', 'creating a special functor with + rules doesn\'t croak'; + +eval { $seq->$special }; +is $@, "set\n", 'special functor with + rules eats everything properly'; + +$special = eval { + Tikz->functor( + '+LaTeX::TikZ::Mod' => sub { die "mod\n" }, + '+LaTeX::TikZ::Set' => sub { die "set\n" }, + 'LaTeX::TikZ::Set::Point' => sub { Tikz->point(7) }, + 'LaTeX::TikZ::Set::Op' => sub { Tikz->raw('moo') }, + ); +}; +is $@, '', 'creating a special functor with + and normal rules doesn\'t croak'; + +my $res = eval { Tikz->point(3, 4)->$special }; +is $@, '', 'special functor with + and normal rules orders its rules properly'; + +check $res, 'the result of the special functor', <<'RES'; +\draw (7cm,0cm) ; +RES + +$res = eval { Tikz->raw('hlagh')->$special }; +is $@, '', + 'special functor with + and normal rules orders its rules properly again'; + +check $res, 'the result of the special functor', <<'RES'; +\draw moo ; +RES + +$tikz = eval { + Tikz->formatter( + origin => [ -1, 1 ], + ); +}; +is $@, '', 'creating a formatter object with an origin doesn\'t croak'; + +check $seq, 'a sequence translated by an origin', <<'RES'; +\begin{scope} +\clip (-1cm,0cm) rectangle (1cm,4cm) ; +\draw (-1cm,1cm) ; +\draw foo ; +\draw (1cm,1cm) ; +\begin{scope} +\clip (0cm,1cm) circle (1cm) ; +\draw (-2cm,1cm) -- (2cm,1cm) ; +\end{scope} +\end{scope} +RES