[gimp-perl] Use epsilon in colour floating-point comparison. Bug 730958
- From: Ed J <edj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp-perl] Use epsilon in colour floating-point comparison. Bug 730958
- Date: Wed, 4 Jun 2014 00:48:32 +0000 (UTC)
commit 2b8a7a8a28b087d5989a163d4ee3ca862a7a2ae3
Author: Ed J <edj src gnome org>
Date: Wed Jun 4 01:31:07 2014 +0100
Use epsilon in colour floating-point comparison. Bug 730958
t/gimpsetup.pl | 7 ++++++
t/pdl.t | 64 +++++++++++++++++++++++++++++++++++---------------------
t/perlplugin.t | 8 ++++--
3 files changed, 52 insertions(+), 27 deletions(-)
---
diff --git a/t/gimpsetup.pl b/t/gimpsetup.pl
index a02002d..b86840a 100644
--- a/t/gimpsetup.pl
+++ b/t/gimpsetup.pl
@@ -76,4 +76,11 @@ EOF
}
}
+my $EPSILON = 1e-6;
+# true if same within $EPSILON
+sub cmp_colour {
+ my ($c1, $c2) = @_;
+ !grep { abs(($c1->[$_]//0) - ($c2->[$_]//0)) > $EPSILON } (0..3);
+}
+
1;
diff --git a/t/pdl.t b/t/pdl.t
index 0e1ecc4..f35120b 100644
--- a/t/pdl.t
+++ b/t/pdl.t
@@ -119,51 +119,67 @@ Gimp::Context->push;
Gimp::Context->set_foreground($fgcolour);
$l->fill(FOREGROUND_FILL);
-is_deeply(
- [ @{$l->test_pdl_getpixel(@setcoords)}[0..2] ],
- Gimp::canonicalize_color($fgcolour),
+ok(
+ cmp_colour(
+ [ @{$l->test_pdl_getpixel(@setcoords)}[0..2] ],
+ Gimp::canonicalize_color($fgcolour),
+ ),
'getpixel initial colour'
);
$l->test_pdl_setpixel(@setcoords, $setcolour);
-is_deeply(
- [ @{$l->test_pdl_getpixel(@setcoords)}[0..2] ],
- Gimp::canonicalize_color($setcolour),
+ok(
+ cmp_colour(
+ [ @{$l->test_pdl_getpixel(@setcoords)}[0..2] ],
+ Gimp::canonicalize_color($setcolour),
+ ),
'getpixel colour after setpixel'
);
-is_deeply(
- [ @{$l->test_pdl_getpixel(map { $_+1 } @setcoords)}[0..2] ],
- Gimp::canonicalize_color($fgcolour),
+ok(
+ cmp_colour(
+ [ @{$l->test_pdl_getpixel(map { $_+1 } @setcoords)}[0..2] ],
+ Gimp::canonicalize_color($fgcolour),
+ ),
'getpixel other pixel after setpixel'
);
$l->test_pdl_iterate(3);
-is_deeply(
- [ @{$l->test_pdl_getpixel(@setcoords)}[0..2] ],
- Gimp::canonicalize_color([ map { $_+3 } @$setcolour ]),
+ok(
+ cmp_colour(
+ [ @{$l->test_pdl_getpixel(@setcoords)}[0..2] ],
+ Gimp::canonicalize_color([ map { $_+3 } @$setcolour ]),
+ ),
'getpixel colour after iterate'
);
eval $pdl_operations;
$l->fill(FOREGROUND_FILL);
-is_deeply(
- Gimp::canonicalize_color(getpixel($i, $l, @setcoords)),
- Gimp::canonicalize_color($fgcolour),
+ok(
+ cmp_colour(
+ Gimp::canonicalize_color(getpixel($i, $l, @setcoords)),
+ Gimp::canonicalize_color($fgcolour),
+ ),
'net getpixel initial colour'
);
setpixel($i, $l, @setcoords, Gimp::canonicalize_color($setcolour));
-is_deeply(
- Gimp::canonicalize_color(getpixel($i, $l, @setcoords)),
- Gimp::canonicalize_color($setcolour),
+ok(
+ cmp_colour(
+ Gimp::canonicalize_color(getpixel($i, $l, @setcoords)),
+ Gimp::canonicalize_color($setcolour),
+ ),
'net getpixel colour after setpixel'
);
-is_deeply(
- Gimp::canonicalize_color(getpixel($i, $l, map { $_+1 } @setcoords)),
- Gimp::canonicalize_color($fgcolour),
+ok(
+ cmp_colour(
+ Gimp::canonicalize_color(getpixel($i, $l, map { $_+1 } @setcoords)),
+ Gimp::canonicalize_color($fgcolour),
+ ),
'net getpixel other pixel after setpixel'
);
iterate($i, $l, 3);
-is_deeply(
- Gimp::canonicalize_color(getpixel($i, $l, @setcoords)),
- Gimp::canonicalize_color([ map { $_+3 } @$setcolour ]),
+ok(
+ cmp_colour(
+ Gimp::canonicalize_color(getpixel($i, $l, @setcoords)),
+ Gimp::canonicalize_color([ map { $_+3 } @$setcolour ]),
+ ),
'net getpixel colour after iterate'
);
diff --git a/t/perlplugin.t b/t/perlplugin.t
index 14be584..b70d8de 100644
--- a/t/perlplugin.t
+++ b/t/perlplugin.t
@@ -156,9 +156,11 @@ my ($tl) = $i->get_layers;
is($tl->get_name, 'value', 'layer name');
is(Gimp::Plugin->test_return_text('text'), 'text', 'return text');
my $incolour = [6, 6, 6, 1];
-is_deeply(
- Gimp::Plugin->test_return_colour($incolour),
- Gimp::canonicalize_color($incolour),
+ok(
+ cmp_colour(
+ Gimp::Plugin->test_return_colour($incolour),
+ Gimp::canonicalize_color($incolour),
+ ),
'return colour'
);
my $send_text = 'exception';
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]