use strict;
use warnings;
-use Test::More tests => 8 + 2 * 8;
+use Test::More tests => 8 + 2 * 8 + 2 * (1 + 2 * 3);
use Math::Complex;
use LaTeX::TikZ;
-my $tikz = Tikz->formatter(
+use lib 't/lib';
+use LaTeX::TikZ::TestHelper;
+
+using 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);
- };
- is $@, '', "$desc: no error";
-
- unless (ref $exp eq 'ARRAY') {
- $exp = [ split /\n/, $exp ];
- }
- unshift @$exp, '\begin{tikzpicture}';
- push @$exp, '\end{tikzpicture}';
-
- is_deeply $body, $exp, $desc;
-}
-
my $z = Math::Complex->make(1, 2);
my $p = eval {
check $p, 'a labeled positioned point', <<'RES';
\draw (2cm,-2cm) [fill] circle (0.4pt) node[scale=0.20,below right] {bar} ;
RES
+
+my $union = eval {
+ Tikz->union(
+ Tikz->point([ 0, -1 ]),
+ Tikz->raw("foo"),
+ Tikz->point(9)
+ );
+};
+is $@, '', 'creating a simple union path doesn\'t croak';
+is_point_ok $union->begin, 0, -1, 'beginning of a simple union path';
+is_point_ok $union->end, 9, 0, 'end of a simple union path';
+
+my $path = eval {
+ Tikz->union(
+ Tikz->join('--' => 1, 2, 3),
+ $union,
+ Tikz->chain(5 => '--' => [ 6, 1 ]),
+ );
+};
+is $@, '', 'creating a complex union path doesn\'t croak';
+is_point_ok $path->begin, 1, 0, 'beginning of a complex union path';
+is_point_ok $path->end, 6, 1, 'end of a complex union path';