]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blobdiff - t/10-set.t
Fix drawing empty sequences
[perl/modules/LaTeX-TikZ.git] / t / 10-set.t
index f21f587578d972afa6e00e4a27f2ada043b80d16..6ff94ef58cb2b1f62ce2ddfe65b76c5243da88c5 100644 (file)
@@ -3,12 +3,11 @@
 use strict;
 use warnings;
 
-use Test::More tests => 12 + 2 * 7;
+use Test::More tests => 19 + 2 * 14;
 
 use LaTeX::TikZ;
-use LaTeX::TikZ::Formatter;
 
-my $tikz = LaTeX::TikZ::Formatter->new(
+my $tikz = Tikz->formatter(
  format => '%d',
 );
 
@@ -102,17 +101,81 @@ check $seq3, 'two different raw sets and an extended sequence', <<'RES';
 \draw foo ;
 RES
 
+my $seq4 = eval {
+ Tikz->seq;
+};
+is $@, '', 'creating an empty sequence doesn\'t croak';
+
+check $seq4, 'an empty sequence', '';
+
+$seq4 = eval {
+ Tikz->seq(Tikz->seq);
+};
+is $@, '', 'creating a sequence that contains an empty sequence doesn\'t croak';
+
+check $seq4, 'a sequence that contains an empty sequence', '';
+
+$seq4 = eval {
+ Tikz->seq($foo, Tikz->seq);
+};
+is $@, '',
+ 'creating a sequence that contains a set and an empty sequence doesn\'t croak';
+
+check $seq4, 'a sequence that contains a set and an empty sequence', <<'RES';
+\draw foo ;
+RES
+
+$seq4 = eval {
+ Tikz->seq(Tikz->seq, $foo);
+};
+is $@, '',
+ 'creating a sequence that contains an empty sequence and a set doesn\'t croak';
+
+check $seq4, 'a sequence that contains an empty sequence and a set', <<'RES';
+\draw foo ;
+RES
+
+$seq4 = eval {
+ Tikz->seq($foo, $bar, Tikz->seq);
+};
+is $@, '',
+'creating a sequence that contains 2 sets and an empty sequence doesn\'t croak';
+
+check $seq4, 'a sequence that contains 2 sets and an empty sequence', <<'RES';
+\draw foo ;
+\draw bar ;
+RES
+
+$seq4 = eval {
+ Tikz->seq($foo, Tikz->seq, $bar);
+};
+is $@, '', 'creating a sequence that contains a set, an empty sequence, a set doesn\'t croak';
+
+check $seq4, 'a sequence that contains a set, an empty sequence, a set',<<'RES';
+\draw foo ;
+\draw bar ;
+RES
+
+$seq4 = eval {
+ Tikz->seq(Tikz->seq, $foo, $bar);
+};
+is $@, '',
+'creating a sequence that contains an empty sequence and 2 sets';
+
+check $seq4, 'a sequence that contains an empty sequence and 2 sets', <<'RES';
+\draw foo ;
+\draw bar ;
+RES
+
 sub failed_valid {
  my ($tc) = @_;
  qr/Validation failed for '\Q$tc\E'/;
 }
 
-my $err_path = qr/does not pass the type constraint because: Validation failed for 'Maybe\[ArrayRef\[LaTeX::TikZ::Set::Path::Elements\]\]/;
-
 eval {
  Tikz->path($foo, $seq2);
 };
-like $@, failed_valid('Maybe[ArrayRef[LaTeX::TikZ::Set::Path::Elements]]'),
+like $@, failed_valid('Maybe[ArrayRef[LaTeX::TikZ::Set::Op]]'),
          'creating a path that contains a sequence croaks';
 
 my $path = eval {
@@ -129,7 +192,7 @@ eval {
 };
 is $@, '', 'adding something to a path set doesn\'t croak';
 
-check [ $path, $path ], 'two identical path sets', <<'RES';
+check Tikz->seq($path, $path), 'two identical path sets', <<'RES';
 \draw foo bar baz foo ;
 \draw foo bar baz foo ;
 RES
@@ -137,5 +200,5 @@ RES
 eval {
  $path->add($seq2);
 };
-like $@, failed_valid('LaTeX::TikZ::Set::Path::Elements'),
+like $@, failed_valid('LaTeX::TikZ::Set::Op'),
          'adding a sequence to a path croaks';