[perl-Cairo] Make t/CairoPath.t more robust
- From: Torsten SchÃnfeld <tsch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [perl-Cairo] Make t/CairoPath.t more robust
- Date: Sat, 7 Apr 2012 18:02:14 +0000 (UTC)
commit a1cd2e45b4ee49a724ae5d7e854ad9829eebf00d
Author: Torsten SchÃnfeld <kaffeetisch gmx de>
Date: Sat Apr 7 20:01:31 2012 +0200
Make t/CairoPath.t more robust
The end of a path that took a round trip into cairo and back might differ
for different versions of cairo. Hence, compare only the beginning with
the expected path.
t/CairoPath.t | 42 ++++++++++++++++++++++--------------------
1 files changed, 22 insertions(+), 20 deletions(-)
---
diff --git a/t/CairoPath.t b/t/CairoPath.t
index 770e464..27a3aad 100644
--- a/t/CairoPath.t
+++ b/t/CairoPath.t
@@ -11,17 +11,11 @@ use strict;
use warnings;
use Cairo;
-use Test::More;
+use Test::More tests => 18;
use constant IMG_WIDTH => 256;
use constant IMG_HEIGHT => 256;
-if (Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 4, 0)) {
- plan tests => 6;
-} else {
- plan skip_all => 'path behavior not predictable on cairo < 1.4';
-}
-
my $surf = Cairo::ImageSurface->create ('rgb24', IMG_WIDTH, IMG_HEIGHT);
my $cr = Cairo::Context->create ($surf);
@@ -40,14 +34,7 @@ my $expected_path = [
];
my $path = $cr->copy_path;
-is_deeply ($path, $expected_path);
-
-sub paths_agree {
- my ($cr, $path, $expected_path) = @_;
- $cr->new_path;
- $cr->append_path ($path);
- is_deeply ($cr->copy_path, $expected_path);
-}
+paths_agree ($path, $expected_path);
# Modifying single point values.
foreach ($path, $expected_path) {
@@ -57,21 +44,21 @@ foreach ($path, $expected_path) {
$_->[2]{points}[2][0] = 99;
$_->[2]{points}[2][1] = 1010;
}
-paths_agree ($cr, $path, $expected_path);
+path_round_trip_ok ($cr, $path, $expected_path);
# Modifying single points.
foreach ($path, $expected_path) {
$_->[1]{points}[0] = [333, 444];
$_->[2]{points}[2] = [77, 88];
}
-paths_agree ($cr, $path, $expected_path);
+path_round_trip_ok ($cr, $path, $expected_path);
# Replacing all points.
foreach ($path, $expected_path) {
$_->[1]{points} = [[3333, 4444]];
$_->[2]{points} = [[55, 66], [77, 88], [99, 1010]];
}
-paths_agree ($cr, $path, $expected_path);
+path_round_trip_ok ($cr, $path, $expected_path);
# Replacing and adding path segments.
my @cloned_path = @{$path};
@@ -86,9 +73,24 @@ foreach (\ cloned_path, $expected_path) {
type => 'line-to',
points => [[23, 42]] };
}
-paths_agree ($cr, \ cloned_path, $expected_path);
+path_round_trip_ok ($cr, \ cloned_path, $expected_path);
# Passing bare arrays into Cairo.
$cr->new_path;
$cr->append_path ($expected_path);
-is_deeply ($cr->copy_path, $expected_path);
+paths_agree ($cr->copy_path, $expected_path);
+
+sub path_round_trip_ok {
+ my ($cr, $path, $expected_path) = @_;
+ $cr->new_path;
+ $cr->append_path ($path);
+ paths_agree ($cr->copy_path, $expected_path);
+}
+
+sub paths_agree {
+ my ($path, $expected_path) = @_;
+ # Only the first three entries seem to be reliable across cairo versions.
+ for (0..2) {
+ is_deeply ($path->[$_], $expected_path->[$_]);
+ }
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]