X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F23-pattern.t;h=c592ad07b0e5286998ad114c32ce04627eae71a3;hb=b212ec02c4010c5200e7741d432397bfede7ca50;hp=d5aa47401835719197f2be34e94ed5b6e0b2cfe0;hpb=d934d1a7f7268b248687f14e0ede2723010bf243;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/t/23-pattern.t b/t/23-pattern.t index d5aa474..c592ad0 100644 --- a/t/23-pattern.t +++ b/t/23-pattern.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 2 + 4 * 2; +use Test::More tests => 5 + 4 * 5; use LaTeX::TikZ; @@ -44,10 +44,10 @@ my $lines = eval { is $@, '', 'creating a line pattern doesn\'t croak'; check $lines, 'a line pattern', <<'DECL', <<'BODY'; -\pgfdeclarepatternformonly{pata}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{0.3pt}{0.3pt}}{\pgfqpoint{0.2pt}{0.2pt}}{ +\pgfdeclarepatternformonly{pata}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{1.8pt}{1.8pt}}{\pgfqpoint{1.6pt}{1.6pt}}{ \pgfsetlinewidth{0.2pt} -\pgfpathmoveto{\pgfqpoint{-0.2pt}{0.1pt}} -\pgfpathlineto{\pgfqpoint{0.3pt}{0.1pt}} +\pgfpathmoveto{\pgfqpoint{-0.2pt}{0.8pt}} +\pgfpathlineto{\pgfqpoint{1.8pt}{0.8pt}} \pgfusepath{stroke} } DECL @@ -61,10 +61,81 @@ my $dots = eval { is $@, '', 'creating a dot pattern doesn\'t croak'; check $dots, 'a dot pattern', <<'DECL', <<'BODY'; -\pgfdeclarepatternformonly{patb}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{0.3pt}{0.3pt}}{\pgfqpoint{0.2pt}{0.2pt}}{ -\pgfpathcircle{\pgfqpoint{0.1pt}{0.1pt}}{0.2pt} +\pgfdeclarepatternformonly{patb}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{1.8pt}{1.8pt}}{\pgfqpoint{1.6pt}{1.6pt}}{ +\pgfpathcircle{\pgfqpoint{0.8pt}{0.8pt}}{0.2pt} \pgfusepath{fill} } DECL \draw [fill,pattern=patb] foo ; BODY + +my ($lines_mod) = $lines->mods; +my ($dots_mod) = $dots->mods; + +my $seq = eval { + Tikz->seq( + Tikz->raw('foo') + ->mod($lines_mod) + )->mod($lines_mod); +}; +is $@, '', 'creating a sequence with two identic patterns doesn\'t croak'; + +check $seq, 'a sequence with two identic patterns', <<'DECL', <<'BODY'; +\pgfdeclarepatternformonly{pata}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{1.8pt}{1.8pt}}{\pgfqpoint{1.6pt}{1.6pt}}{ +\pgfsetlinewidth{0.2pt} +\pgfpathmoveto{\pgfqpoint{-0.2pt}{0.8pt}} +\pgfpathlineto{\pgfqpoint{1.8pt}{0.8pt}} +\pgfusepath{stroke} +} +DECL +\draw [fill,pattern=pata] foo ; +BODY + +$seq = eval { + Tikz->seq( + Tikz->raw('foo') + ->mod($lines_mod) + )->mod(Tikz->pattern(class => 'Lines', direction => 'vertical')); +}; +is $@, '', + 'creating a sequence with two orthogonal line patterns doesn\'t croak'; + +check $seq, 'a sequence with two orthogonal line patterns', <<'DECL', <<'BODY'; +\pgfdeclarepatternformonly{patc}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{1.8pt}{1.8pt}}{\pgfqpoint{1.6pt}{1.6pt}}{ +\pgfsetlinewidth{0.2pt} +\pgfpathmoveto{\pgfqpoint{0.8pt}{-0.2pt}} +\pgfpathlineto{\pgfqpoint{0.8pt}{1.8pt}} +\pgfusepath{stroke} +} +\pgfdeclarepatternformonly{pata}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{1.8pt}{1.8pt}}{\pgfqpoint{1.6pt}{1.6pt}}{ +\pgfsetlinewidth{0.2pt} +\pgfpathmoveto{\pgfqpoint{-0.2pt}{0.8pt}} +\pgfpathlineto{\pgfqpoint{1.8pt}{0.8pt}} +\pgfusepath{stroke} +} +DECL +\draw [fill,pattern=patc,pattern=pata] foo ; +BODY + +$seq = eval { + Tikz->seq( + Tikz->raw('foo') + ->mod($lines_mod) + )->mod($dots_mod); +}; +is $@, '', 'creating a sequence with two different patterns doesn\'t croak'; + +check $seq, 'a sequence with two different patterns', <<'DECL', <<'BODY'; +\pgfdeclarepatternformonly{patb}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{1.8pt}{1.8pt}}{\pgfqpoint{1.6pt}{1.6pt}}{ +\pgfpathcircle{\pgfqpoint{0.8pt}{0.8pt}}{0.2pt} +\pgfusepath{fill} +} +\pgfdeclarepatternformonly{pata}{\pgfqpoint{-0.2pt}{-0.2pt}}{\pgfqpoint{1.8pt}{1.8pt}}{\pgfqpoint{1.6pt}{1.6pt}}{ +\pgfsetlinewidth{0.2pt} +\pgfpathmoveto{\pgfqpoint{-0.2pt}{0.8pt}} +\pgfpathlineto{\pgfqpoint{1.8pt}{0.8pt}} +\pgfusepath{stroke} +} +DECL +\draw [fill,pattern=patb,pattern=pata] foo ; +BODY