#!/usr/bin/perl

use strict;
use warnings;

use Slic3r::XS;
use Test::More tests => 3;

{
    my $collection = Slic3r::Polyline::Collection->new(
        Slic3r::Polyline->new([0,15], [0,18], [0,20]),
        Slic3r::Polyline->new([0,10], [0,8], [0,5]),
    );
    is_deeply
        [ map $_->y, map @$_, @{$collection->chained_path_from(Slic3r::Point->new(0,30), 0)} ],
        [20, 18, 15, 10, 8, 5],
        'chained_path_from';
    is_deeply
        [ map $_->y, map @$_, @{$collection->chained_path(0)} ],
        [15, 18, 20, 10, 8, 5],
        'chained_path';
}

{
    my $collection = Slic3r::Polyline::Collection->new(
        Slic3r::Polyline->new([15,0], [10,0], [4,0]),
        Slic3r::Polyline->new([10,5], [15,5], [20,5]),
    );
    is_deeply
        [ map $_->x, map @$_, @{$collection->chained_path_from(Slic3r::Point->new(30,0), 0)} ],
        [reverse 4, 10, 15, 10, 15, 20],
        'chained_path_from';
}

__END__