]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blobdiff - t/10-set.t
Replace LaTeX::TikZ::Set::Path::Elements by LaTeX::TikZ::Set::Op
[perl/modules/LaTeX-TikZ.git] / t / 10-set.t
index 029fccdd83df223520ced6af1f7972f5375645f4..4ddac3c9d670ff68b9dc81a3dde2daaea4411531 100644 (file)
@@ -3,18 +3,19 @@
 use strict;
 use warnings;
 
-use Test::More tests => 9 + 2 * 6;
+use Test::More tests => 12 + 2 * 7;
 
 use LaTeX::TikZ;
-use LaTeX::TikZ::Formatter;
 
-my $tikz = LaTeX::TikZ::Formatter->new(
+my $tikz = Tikz->formatter(
  format => '%d',
 );
 
 sub check {
  my ($set, $desc, $exp) = @_;
 
+ local $Test::Builder::Level = $Test::Builder::Level + 1;
+
  my ($head, $decl, $body) = eval {
   $tikz->render(ref $set eq 'ARRAY' ? @$set : $set);
  };
@@ -100,12 +101,38 @@ check $seq3, 'two different raw sets and an extended sequence', <<'RES';
 \draw foo ;
 RES
 
+sub failed_valid {
+ my ($tc) = @_;
+ qr/Validation failed for '\Q$tc\E'/;
+}
+
+eval {
+ Tikz->path($foo, $seq2);
+};
+like $@, failed_valid('Maybe[ArrayRef[LaTeX::TikZ::Set::Op]]'),
+         'creating a path that contains a sequence croaks';
+
 my $path = eval {
  Tikz->path($foo, $bar, $baz);
 };
 is $@, '', 'creating a path set doesn\'t croak';
 
-check [ $path, $path ], 'two identical path sets', <<'RES';
-\draw foo bar baz ;
+check $path, 'one path set', <<'RES';
 \draw foo bar baz ;
 RES
+
+eval {
+ $path->add($foo);
+};
+is $@, '', 'adding something to a path set doesn\'t croak';
+
+check Tikz->seq($path, $path), 'two identical path sets', <<'RES';
+\draw foo bar baz foo ;
+\draw foo bar baz foo ;
+RES
+
+eval {
+ $path->add($seq2);
+};
+like $@, failed_valid('LaTeX::TikZ::Set::Op'),
+         'adding a sequence to a path croaks';