1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
#!/usr/bin/perl
use strict;
use warnings;
use QtCore4;
use QtGui4;
use QtCore4::debug qw(ambiguous);
use Test::More tests => 32;
my $polygon = Qt::Polygon( [
Qt::Point(5,7),
Qt::Point(0,1),
Qt::Point(1,1),
Qt::Point(1,0)
] );
ok( exists $polygon->[0], 'Qt::Polygon::EXISTS' );
ok( !exists $polygon->[4], 'Qt::Polygon::EXISTS' );
ok( $polygon->[0] == Qt::Point(5,7), 'Qt::Polygon::FETCH' );
is( scalar @{$polygon}, 4, 'Qt::Polygon::FETCHSIZE' );
$polygon->[6] = Qt::Point(2,0);
ok( exists $polygon->[6], 'Qt::Polygon::EXISTS' );
ok( $polygon->[6] == Qt::Point(2,0), 'Qt::Polygon::FETCH' );
ok( $polygon->[-1] == Qt::Point(2,0), 'Qt::Polygon::FETCH' );
is( scalar @{$polygon}, 7, 'Qt::Polygon::FETCHSIZE' );
$#{$polygon} = 9;
is( scalar @{$polygon}, 10, 'Qt::Polygon::STORESIZE' );
$#{$polygon} = 2;
is( $#{$polygon}, 2, 'Qt::Polygon::STORESIZE' );
ok( delete( $polygon->[1] ) == Qt::Point(0,1), 'Qt::Polygon::DELETE' );
is( $polygon->[1]->y, 0, 'Qt::Polygon::DELETE' );
is_deeply( [push( @{$polygon}, Qt::Point(50,50), Qt::Point(60,60), Qt::Point(70,70) )],
[6],
'Qt::Polygon::PUSH' );
ok( $polygon->[3] == Qt::Point(50,50), 'Qt::Polygon::PUSH' );
ok( $polygon->[4] == Qt::Point(60,60), 'Qt::Polygon::PUSH' );
ok( $polygon->[5] == Qt::Point(70,70), 'Qt::Polygon::PUSH' );
ok( pop( @{$polygon} ) == Qt::Point(70,70), 'Qt::Polygon::POP' );
is( scalar @{$polygon}, 5, 'Qt::Polygon::POP' );
ok( shift( @{$polygon} ) == Qt::Point(5,7), 'Qt::Polygon::SHIFT' );
is( scalar @{$polygon}, 4, 'Qt::Polygon::SHIFT' );
is( unshift( @{$polygon}, Qt::Point(50,50), Qt::Point(60,60), Qt::Point(70,70) ),
7,
'Qt::Polygon::UNSHIFT' );
ok( $polygon->[0] == Qt::Point(50,50), 'Qt::Polygon::UNSHIFT' );
ok( $polygon->[1] == Qt::Point(60,60), 'Qt::Polygon::UNSHIFT' );
ok( $polygon->[2] == Qt::Point(70,70), 'Qt::Polygon::UNSHIFT' );
@{$polygon} = ();
my @points = (
[0,0],
[1,1],
[2,2],
[3,3],
[4,4],
[5,5],
[6,6]
);
map { push @{$polygon}, Qt::Point( $_->[0], $_->[1] ) } @points;
my @gotPoints = splice @{$polygon};
is_deeply( [map{ [$_->x, $_->y] } @gotPoints], \@points, 'Qt::Polygon::SPLICE all' );
map { push @{$polygon}, Qt::Point( $_->[0], $_->[1] ) } @points;
@gotPoints = splice @{$polygon}, 3;
is_deeply( [map{ [$_->x, $_->y] } @gotPoints], [@points[3..6]], 'Qt::Polygon::SPLICE half' );
@{$polygon} = ();
is( scalar @{$polygon}, 0, 'Qt::Polygon::CLEAR' );
map { push @{$polygon}, Qt::Point( $_->[0], $_->[1] ) } @points;
@gotPoints = splice @{$polygon}, 10;
is( scalar @gotPoints, 0, 'Qt::Polygon::SPLICE off end' );
@gotPoints = splice @{$polygon}, 3, 1;
is_deeply( [map{ [$_->x, $_->y] } @gotPoints], [$points[3]], 'Qt::Polygon::SPLICE half' );
is_deeply( [map{ [$_->x, $_->y] } @{$polygon}], [@points[0..2],@points[4..6]], 'Qt::Polygon::SPLICE half' );
@{$polygon} = ();
map { push @{$polygon}, Qt::Point( $_->[0], $_->[1] ) } @points;
@gotPoints = splice @{$polygon}, 3, 1, Qt::Point(7,7), Qt::Point(8,8), Qt::Point(9,9);
is_deeply( [map{ [$_->x, $_->y] } @{$polygon}], [@points[0..2],([7,7],[8,8],[9,9]),@points[4..6]], 'Qt::Polygon::SPLICE replace' );
@{$polygon} = ();
map { push @{$polygon}, Qt::Point( $_->[0], $_->[1] ) } @points;
my $poly2 = Qt::Polygon([map { Qt::Point( $_->[0], $_->[1] ) } @points]);
ok( $polygon == $poly2, 'Qt::Polygon::operator==' );
|