Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests fail with PerlMagick and ImageMagick 7 #19

Closed
pacien opened this issue Feb 22, 2021 · 16 comments
Closed

Tests fail with PerlMagick and ImageMagick 7 #19

pacien opened this issue Feb 22, 2021 · 16 comments

Comments

@pacien
Copy link

pacien commented Feb 22, 2021

It seems that switching from PerlMagick and ImageMagick 6 to version 7 causes the tests to fail.

Some failures are similar to those in #18 (comment), but are happening even when the tests aren't run in parallel.

Test log:

❯ nix-build -A perlPackages.Gtk3ImageView
these derivations will be built:
  /nix/store/yz6vk18sapj606n4dppc1kv6fj8qxjwh-perl5.32.0-Gtk3-ImageView-6.drv
building '/nix/store/yz6vk18sapj606n4dppc1kv6fj8qxjwh-perl5.32.0-Gtk3-ImageView-6.drv'...
unpacking sources
unpacking source archive /nix/store/5n6jnidvg2xlmzbj82b6agy4x017kdil-Gtk3-ImageView-6.tar.gz
source root is Gtk3-ImageView-6
setting SOURCE_DATE_EPOCH to timestamp 1605623921 of file Gtk3-ImageView-6/META.yml
patching sources
configuring
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Gtk3::ImageView
Writing MYMETA.yml and MYMETA.json
no configure script, doing nothing
building
build flags: SHELL=/nix/store/yyy7wr7r9jwjjqkr1yn643g3wzv010zd-bash-4.4-p23/bin/bash
cp lib/Gtk3/ImageView/Tool.pm blib/lib/Gtk3/ImageView/Tool.pm
cp lib/Gtk3/ImageView.pm blib/lib/Gtk3/ImageView.pm
cp lib/Gtk3/ImageView/Tool/SelectorDragger.pm blib/lib/Gtk3/ImageView/Tool/SelectorDragger.pm
cp lib/Gtk3/ImageView/Tool/Selector.pm blib/lib/Gtk3/ImageView/Tool/Selector.pm
cp lib/Gtk3/ImageView/Tool/Dragger.pm blib/lib/Gtk3/ImageView/Tool/Dragger.pm
Manifying 1 pod document
running tests
PERL_DL_NONLAZY=1 "/nix/store/p069ycxin0x5p0436mrcdhra8b3gp69l-perl-5.32.0/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_basics.t ....... ok
t/2_transparent.t .. 1/4 # PNG of the shown window:
# iVBORw0KGgoAAAANSUhEUgAAASwAAADIBAMAAACg8cFmAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAHlBMVEUAAP/29fT/AADwDwDQ
# LwDAPwBwjwBAvwAA/wD///8il637AAAAAWJLR0QJ8dml7AAAASRJREFUeNrt3MsJwkAYhVFbsAUf
# DViCYAOiNdiB2oGWLVkJkllMvISfcO5qIJAcsvl2s1oNWw/7OW1m2Nh3vycsLCwsrL9ZzSdzsPp+
# FBYWFhZWN6tofLCwsLCwIqyi8cHCwsJaMmt7uk7e5dDF6onP7vaYvPtx5IWZJu6f78l7nbGwsLAW
# zeqJT5yVaSIWFhYWVpNVND5YWFhYWBFW0fhgYWFhYUVYReODhYWFhRVhFY0PFhYWFlaEVTQ+WFhY
# WFgRVtH4YGFhYWFFWEXjg4WFhYUVYRWNDxYWFhZWhFU0PlhYWFhYEVbR+GBhYWEtmRW/MKbN6olP
# /HqdTBPjw8LCwloOqyc+8WWaiIWFhYXVZBWNDxYWFhZWhFU0PlhYWFhYCdYHQ2UCIDLQtIsAAAAA
# SUVORK5CYII=
t/2_transparent.t .. 2/4
#   Failed test 'middle pixel should be green'
#   at t/2_transparent.t line 58.
#     Structures begin differing at:
#          $got->[1] = '0'
#     $expected->[1] = '1'

#   Failed test 'there is red background'
#   at t/2_transparent.t line 71.
#          got: '0'
#     expected: '1'

#   Failed test 'there is blue outside'
#   at t/2_transparent.t line 82.
#          got: '0'
#     expected: '1'
# Looks like you failed 3 tests of 4.
t/2_transparent.t .. Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/4 subtests
t/3_zoom.t ......... ok
t/4_select.t ....... ok
t/5_filter.t ....... 1/10 # PNG of the blurred window:
# iVBORw0KGgoAAAANSUhEUgAAASwAAADICAMAAABlASxnAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACMVBMVEV0c/pkZPtTU/tEQ/wy
# Mv0jI/0REf4AAP8PD/4hIf4wMP1CQfxRUftiYvtycfoAAP4CAPwDAPsEAPoFAPkGAPgHAPcIAPYJ
# APUKAPQLAPMMAPINAPEOAPAPAO8BAP0RAO0UAOoWAOgYAOYaAOQdAOEfAN8hAN0bAOMSAOwQAO4T
# AOskANonANcqANQuANAxAM0rANMoANYXAOcjANssANI1AMk6AMQ+AMBDALs/AL82AMgtANEmANg3
# AMc8AMJCALxHALdNALFTAKtOALBIALY9AME4AMYyAMwcAOJJALVQAK5XAKdeAKBlAJlfAJ9YAKZR
# AK1KALREALovAM8pANUiANxFALlVAKldAKFtAJF1AIluAJBWAKhGALggAN5ZAKViAJxrAJN0AIp9
# AIGHAHd/AH9jAJtbAKMlANlkAJp4AIaCAHyMAHKXAGeNAHGDAHt5AIVvAI8eAOAVAOlwAI57AIOG
# AHiRAG2dAGGpAFWeAGCSAGyIAHZ8AIJxAI1PAK+TAGufAF+sAFK5AEWtAFGgAF6VAGlLALOhAF2u
# AFC8AELLADO+AECwAE6jAFt6AIRSAKzbACPNADF2AIhmAJg7AMPcACLtABHeACCOAHBgAJ5AAL4w
# AM7/AADvAA/dACG7AEOrAFOZAGWJAHV3AIdnAJczAMvgAB7PAC/AAD6vAE+PAG+AAH5hAJ1BAL2/
# AD+xAE2iAFyUAGqFAHmlAFmWAGhMALJzAItcAKI5AMX////ksCFDAAAAAWJLR0S6o7FH2gAABSlJ
# REFUeNrt0GlTU2cch2G77yX7SXJOyH7CCZCYEAhbEImEEAhCSIKsURES3JDVLQioYBFQRK0K1I2l
# 7nWpFr9dnal92+kz0xf/6fzuT3DPtWPHJ59+9vkXX36F/qGvv/n2u+9/+HEHsP5FwGIIWAwBiyFg
# MQQshoDFELAYAhZDwGIIWAwBiyFgMQQshoDFELAYAhZD/yVWjkyuUKrUGk6r0/OCgUgCr9dpOY1a
# pVTIZbk5VLBkCpVGxxuMJrPFarOLRLLbHBazKc/A6ziVQkYGS67ieMlpttrE/IJCl5tIrp2efNFm
# 9ZokXquWk8FSaHij2Wov8vjcxSX+UiKVlZS7Kzz5doc5j+cUZLCUOsnsECt97kDVrurdNUQK7imt
# DdVVFIhhs6RTksFS8U6r6HEVV5XWRxoao0Rq2tvcEqstb40nHCZBTQZLbTDbK13l/mSwbV+0vYNI
# ndHGrmB3WaC1oMcrachgaYzWIl+xvzqS2n/gYO8hIvV1tPenm+vLAhUZh5PLpYLFmWwed1Uykhro
# PHzk6DEiHR88MRRNN3fX1sWHR7RksLRm0RcoDaYGRsfGT546TaQzZ7MT56LpyVjIlfDqyGDpLPnu
# qvq2/Z1j41PT5y8Q6eLMbHZiqL/rkr8uY+XJYOmtBcW7IvsOHB6f+mnu8jyRFhavzGavtjctxQLx
# sEAGi7cVllQ3RA8eOTn9weoakZYXFmemBq/fSNXf9A0byGAJdpd/d2N779FT5y/P/3yLSLeXF+am
# 7/QNrUyurokSGSyD6C6tiXYcOnb6wvy1W78Q6e695fsPHq5vbLYlt4qMwAIWsIAFLGABC1jAAhaw
# gAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAF
# LGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxg
# AQtYwAIWsIAFLGABC1jAAhawgAUsYAELWMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYAEL
# WMACFrCABSxgAQtYwAIWsIAFLGABC1jAAhawgAUsYP2dYHeVBZs6+46fubiwfPsukX599PjJzNNn
# o88jL9ZEiQwWb9tZsmdvtGPw7MziwvI9Ij367eWr1282NlMtVT67gQyW3uEpL21ubD+Rnb3yQYtI
# j1/+/nZ9rHOlJhaKhwUyWDpLvru2pat/aCI7OzN3n0hPXr1d7x0daHjn36q08mSwtGaxIhQLpqPn
# JrJT0w+INPN6vfePze1I8r0rYdGTweJMNk9dbXdzOjp0dfDOQyI9fTM2urm9VO3fittHtGSwNHnW
# /IrysvrmdH/79b51Ij3b6BzYXmpZDbgyDidHBktt8NoLWgNl3ZNdTTeGNog0urnSEKleDa15eiyS
# JocKloo3OcR4a6A2dmkptbJJpOepmndJf2CtMBEeEdRksJQ6yRxOFFTUhfyx+sk2IkVaYv73Wy5P
# Iuw16lVksBQcn2d29GTirrrAzdUkkV5UhbZc8UxP2OsUOAUZLLlKy0smr2M4kYn71raItOaLVybs
# DsuIUdCq5WSwZAo1pxMk54jXGh4Wi4gk2sNWy4hTEvScWikjg5UrkyuUag2n1fGCQTISSTIIvF7L
# adQqhVyWSwYr569ySfZxjgzW/z5gMQQshoDFELAYAhZDwGIIWAwBiyFgMQQshoDFELAYAhZDwGII
# WAwBi6GPWH8CgF32YRApFSQAAAAASUVORK5CYII=
t/5_filter.t ....... 2/10
#   Failed test 'middle pixel should be red'
#   at t/5_filter.t line 48.
#     Structures begin differing at:
#          $got->[0] = '0.996108949416342'
#     $expected->[0] = '1'

#   Failed test 'there is blue outside'
#   at t/5_filter.t line 74.
#          got: '0'
#     expected: '1'
# PNG of the crisp window:
# iVBORw0KGgoAAAANSUhEUgAAASwAAADIAgMAAAAvsTTGAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACVBMVEUAAP//AAD////1Ly4u
# AAAAAWJLR0QCZgt8ZAAAAEpJREFUaN7tzDEBAAAEADCaKaF/FRU8XFuARQAAz7I3yuVyuVwul8vl
# crlcLpfL5XK5XC6Xy+VyuVwul8vlcrlcLpfL5XK5AIALA0maWUZ3PuQtAAAAAElFTkSuQmCC
t/5_filter.t ....... 6/10
#   Failed test 'blue pixel should still be blue'
#   at t/5_filter.t line 95.
#     Structures begin differing at:
#          $got->[2] = '0'
#     $expected->[2] = '1'

#   Failed test 'red pixel should be immediatelly near blue one'
#   at t/5_filter.t line 107.
#     Structures begin differing at:
#          $got->[0] = '0'
#     $expected->[0] = '1'

#   Failed test 'sharp edge should be within blurred edge (1)'
#   at t/5_filter.t line 113.
#     '0'
#         <
#     '0'
# Looks like you failed 5 tests of 10.
t/5_filter.t ....... Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/10 subtests
t/90_MANIFEST.t .... ok
t/91_critic.t ...... skipped: Author test.  Set $ENV{TEST_AUTHOR} to a true value to run.

Test Summary Report
-------------------
t/2_transparent.t (Wstat: 768 Tests: 4 Failed: 3)
  Failed tests:  2-4
  Non-zero exit status: 3
t/5_filter.t     (Wstat: 1280 Tests: 10 Failed: 5)
  Failed tests:  2, 4, 6, 8-9
  Non-zero exit status: 5
Files=7, Tests=63,  4 wallclock secs ( 0.04 usr  0.02 sys +  1.17 cusr  0.64 csys =  1.87 CPU)
Result: FAIL
Failed 2/7 test programs. 8/63 subtests failed.
make: *** [Makefile:883: test_dynamic] Error 255
builder for '/nix/store/yz6vk18sapj606n4dppc1kv6fj8qxjwh-perl5.32.0-Gtk3-ImageView-6.drv' failed with exit code 2
error: build of '/nix/store/yz6vk18sapj606n4dppc1kv6fj8qxjwh-perl5.32.0-Gtk3-ImageView-6.drv' failed
@DarthGandalf
Copy link
Collaborator

Works for me with ImageMagick 7...

@pacien
Copy link
Author

pacien commented Mar 14, 2021

Strange... The versions might be differing?

My versions are:

  • Gtk3-ImageView: 6
  • PerlMagick: 7.0.10 (imagemagick: 7.0.10-61)
  • Gtk3: 0.037 (gtk3: 3.24.24)

@DarthGandalf
Copy link
Collaborator

Ignore me, I think I confused all my testing environments...
Though something else is now broken for me, debugging.

@DarthGandalf
Copy link
Collaborator

DarthGandalf commented Mar 14, 2021

Ok. This works for me:

x11-libs/gtk+-3.24.26
dev-perl/Gtk3-0.34.0
media-gfx/imagemagick-7.0.10.61-r1
Gtk3-ImageView with #20 because: 1. on this my environment gdk-pixbuf was built without jpeg support, 2. edge between blue and white becomes blurry on my screen so the blue pixel isn't found on the line where it's being searched for.

But that doesn't explain why test failed for you: even with the hidpi screen, the middle pixel should still stay green. And it is green on the picture in your log (in 2_transparent.t).

@pacien
Copy link
Author

pacien commented Mar 15, 2021

I tried with #20 and I get the same failures for the first two failing tests, and new different incorrect values for the last one.

The test command that I'm using is: GDK_SCALE=2 xvfb-run -s '-screen 0 800x600x24' make test

Test log:

❯ nix-build -A perlPackages.Gtk3ImageView
these derivations will be built:
  /nix/store/62pzl4q3y3xvcvzj23mlb11b3np0hqw5-perl5.32.1-Gtk3-ImageView-6.drv
building '/nix/store/62pzl4q3y3xvcvzj23mlb11b3np0hqw5-perl5.32.1-Gtk3-ImageView-6.drv'...
unpacking sources
unpacking source archive /nix/store/5n6jnidvg2xlmzbj82b6agy4x017kdil-Gtk3-ImageView-6.tar.gz
source root is Gtk3-ImageView-6
setting SOURCE_DATE_EPOCH to timestamp 1605623921 of file Gtk3-ImageView-6/META.yml
patching sources
applying patch /nix/store/w2clyv5fipa76bbnxpx9dswbibbl0spk-837c5ba17f763ee830da880d3affe95635728303.patch
patching file Makefile.PL
patching file lib/Gtk3/ImageView.pm
patching file t/1_basics.t
patching file t/2_transparent.t
patching file t/4_select.t
applying patch /nix/store/rg2y631pfbhxvhisbn4zig1h6rgh4jxj-79c96d95634499375809c7763e840f5499882f19.patch
patching file t/1_basics.t
configuring
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Gtk3::ImageView
Writing MYMETA.yml and MYMETA.json
no configure script, doing nothing
building
build flags: SHELL=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
cp lib/Gtk3/ImageView/Tool.pm blib/lib/Gtk3/ImageView/Tool.pm
cp lib/Gtk3/ImageView.pm blib/lib/Gtk3/ImageView.pm
cp lib/Gtk3/ImageView/Tool/SelectorDragger.pm blib/lib/Gtk3/ImageView/Tool/SelectorDragger.pm
cp lib/Gtk3/ImageView/Tool/Selector.pm blib/lib/Gtk3/ImageView/Tool/Selector.pm
cp lib/Gtk3/ImageView/Tool/Dragger.pm blib/lib/Gtk3/ImageView/Tool/Dragger.pm
Manifying 1 pod document
running tests
PERL_DL_NONLAZY=1 "/nix/store/192j9y62kp6a5kjw1ylgg1s4w7yxchc5-perl-5.32.1/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_basics.t ....... ok
t/2_transparent.t .. 1/4 # PNG of the shown window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQBAMAAACAGwOrAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAMFBMVEVsbPo+PfzJyPb29fQA
# AP+5uPddXPuamvj/AADwDwDQLwDAPwBwjwBAvwAA/wD///+wij47AAAAAWJLR0QPGLoA2QAAA9VJ
# REFUeNrt2sFpVUEYhuFrBwrBBsQGlBQgWIEiri3CHkxsICUE0oAkNaSDxA6SGtzcnLuZzTmc+b9x
# eGYV3sWFecjqzHd49eZ4Xr/7+HK0djucfT6eT1+XqLUbLFiw4g0WLFjxBgsWrHiDBQtWvMGCBSve
# YMHqhLV8Pn3789vxfNHa7fD+5c/vP5avzlq7HZb/sfPTP57WbrBgwYo3WLBgxRssWLDiDRYsWPEG
# CxaseIMFqzfWh9OYWWu304PFADvz0ZunsBUNFixY8QYLFqx4gwULVrzBggUr3mDBghVvsGB1wlo+
# nw6wMx+92cHbwfdpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4gwWrN9YAO/PRmx38iuYpbEWDBQtW
# vMGCBSveYMGCFW+wYMGKN1iwYMUbLFidsJbPpwPszEdvJTv4XwVnmh18BVbFPWDBggULFixYsGDB
# ggULFixYsGDBgjU9Vsf9eCnW/76Dr8CquEfJU1gFVsU9YMGCBQsWLFiwYMGCBQsWLFiwYMGCNStW
# xX68cbeLm7vN5/aq8YMV90jt4C/vHzefh+vGD868g//993nzefrT+MGKe8CCBQsWLFiwYMGCBQsW
# LFiwYMGCBWt6rNodfD+sCXfwu2NV3CP1FLY7VsU9YMGCBQsWLFiwYMGCBQsWLFiwYMGCNStWxX68
# AqviHqkd/O5YdvArsCruAQsWLFiwYMGCBQsWLFiwYMGCBQsWrOmx7ODt4PdsnsJWNFiwYMGCBQsW
# LFiwYMGCBQsWLFiwYM2KVbEfr8CquIcdvB18n3vAggULFixYsGDBggULFixYsGDBggVreiw7eDv4
# PZunsBUNFixYsGDBggULFixYsGDBggULFixYs2JV7Mcbd7u8f9x8Hq4bP1hxj9QO/uLmbvO5vWr8
# 4Mw7+N1PxT1gwYIFCxYsWLBgwYIFCxYsWLBgwYI1PVbtDr4f1oQ7+N1PxT1ST2G7n4p7wIIFCxYs
# WLBgwYIFCxYsWLBgwYIFa1asiv14BVbFPUp28LO0kqewWRosWLDiDRYsWPEGCxaseIMFC1a8wYIF
# K95gweqN1XE/Pksr2cHP0kqewmZpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4gwWrE9by+bTjfnyW
# ZgdvB9+nwYIFK95gwYIVb7BgwYo3WLBgxRssWLDiDRas3lgD7MxHb3bwK5qnsBUNFixY8QYLFqx4
# gwULVrzBggUr3mDBghVvsGB1wlo+nw6wMx+92cHbwfdpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4
# gwWrN9YAO/PR2z/YV7oN85M6FQAAAABJRU5ErkJggg==
t/2_transparent.t .. 2/4
#   Failed test 'middle pixel should be green'
#   at t/2_transparent.t line 58.
#     Structures begin differing at:
#          $got->[1] = '0'
#     $expected->[1] = '1'

#   Failed test 'there is red background'
#   at t/2_transparent.t line 71.
#          got: '0'
#     expected: '1'

#   Failed test 'there is blue outside'
#   at t/2_transparent.t line 88.
#          got: '0'
#     expected: '1'
# Looks like you failed 3 tests of 4.
t/2_transparent.t .. Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/4 subtests
t/3_zoom.t ......... ok
t/4_select.t ....... ok
t/5_filter.t ....... 1/10 # PNG of the blurred window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAQ
# 6ElEQVR42u3dWW/jSJaA0RtctDld1T3//z/Wkl4kUWTMQ8gqT6a60Y3JgqS854AQKFc+BGDYny+D
# VJW315cAgKy6Wy8AAG5JCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgB
# SE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFI
# TQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhN
# CAFITQgBSG249QL47yxL1PpvjlIjao2ot14o/JRKlBIlopRa2vm/PngUQvhIluWvY55jqaVezj9/
# fYllufVa4WfUdeej78un8yhddKW28/ZFIXwgQvhIaj2n7jSXZY55jnmO0+nyWuYl5jnmU8zzrdcK
# P6O+j76Pro+hj76vw3D+St/HMJSuj1pr36vggxHCR9JCeJrLfIppitP5tUyn+PSVcjrFdLr1WuFn
# NPQxjjEMdRxjGMowtq/UYYhliWGIGEsptdqbeChC+EhqjXmOZY5pimmK4zGmqXw+P05xmuJ4jOPR
# X6Tw441jXa1iGMtqPJ+PY8xLWS3n+HVdLCWE8LEI4SOpNZZa2oXQ4zEOxzId43CIw6EcjvH5/Hi4
# 9VrhZzSuynoV63Vdr2NclfUU63VdlliWUmstJbouSleWRQkfiRA+klqjLjGfJ8IyHWO/j/2+HI6x
# f4/DoewPcdjHfl/2Qgh/g/Uqttt6nMo0xWbzVwIjoutK19VhiGExET4YIXwk5z3CU5xOZZricIj9
# vuz38f4e7+/lfR/79/Le3r65NAo/3npTD8eyWce0q9OpzHNd5ogoEbXroiul7Re2x5ncMvMohPCR
# tD3CeY7pFNN0vgraKvj2Fm9v5e093t/K21u8CiH8DXZTzKc47eqylLrUcwL76LoyjrUfzs8vmQgf
# ixA+kstEOJ/3CGP/UcGXl/L6Fm+v5fUtXl/Ky+ut1wo/o+OhTFOdpjLPdVlKRI0oXVe7rt1NGqeT
# ED4eIXwkH88Rlsse4eFQ3vfx9nau4NeXeH0pX1/i5auJEH6806kuS5nnj1mwK6Wr41CGoR7HslrV
# eS7zXJdafLzTAxHCR1JrWZaYlzid4tj2CA+xfy9v7+cKfv2zfH0pX/+MP/4UQvjxpum8PfFpFizD
# UIehrNZ1muLk0ugDEsJHUuNjj3Aqp7ZHuI/3fby/na+IXir4xx+3Xiv8jC6XQ/s+uq6OYxmGul7H
# YYztFKdTWea6LKbBByOEj+R8afR0eY4w9vvy/h5v5wpGq+Dvv8dvv5kI4cf7+PDC2nWllGg3yKxX
# ZVzV4zGm0/kjD02Ej0UIH8rHZ41Opzgey/EQ+0MbB8vLa7x8LW0W/O23IoTwd1iWWkqJiL6vfR/j
# qoxDbDZ1c4jjsUxTnee/nizkUfj/EQKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApDacOsFwGe1i6VE/U+OWy+VK2qU//yIKLde
# L0QIIXeli+Vy9DH/+/NbL5YrlujaMUf/78+rCnI3hJA7UqK21A1x6mNuRzv//iu3XixXzNG34xTD
# 5fXzV0rUOXoV5K4IIXekhXCI0xCnMaZ//3rrxXLFKYYpxquvXSynGCKiRnFlm7sihNyRErXNfGNM
# Y0yrOP6r11Ucb71YrphiPMbqm9c+5mOsWvzadVEh5K4IIXfk86XRVRzXcWiv7fh8vo7DrRfLFcdY
# HWLdjst529MtUWuUFkJbvNwVIeSOXEJ4mQg3sd/Efh2Hbbyv49DetuPWi+WKQ6zfY9sG931sLgmM
# j1mwXSM1EXJXhJA78nmPsM1/m9hv4/37Yxdvt14sV+xjs47DPjbtT5l2obv9pxbCtl/YHoBxywx3
# Qgi5I9/sEbZLoK18T/G6i7fL8RSvt14sV7zFrv0d8/kRl/bIREtge/rFRMhdEULuyPcT4aWCX+Ll
# KV7b8SVevsTLrRfLFes4XGbBSwg/z4KtkULIXRFC7sj3e4SthW0EfIrX5/j6JV6e4+tzfL31Yrmi
# de7q5dBjrI6xahO/m2W4K0LIHfn+rtG2R9hC+Bxff4k/2+uv8cetF8sVV/cFTzGcYjjEuj0DaiLk
# 3gghd+T7PcLPIWyzYKvgP+L3Wy+WK67uC7ZHKVoF7RFyh4SQO/Kv7hrdxdvnCv4zfvtn/HbrxXLF
# 51mwRvkcwvZMRWuhEHJXhJA78nmP8BLCz+NgmwX/Gb/9jxDepS6W9lBE+3zR9sky+9jsY9NCaCLk
# Dvn/EQKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApDacOsFwF9qlCW6OfpTDFOMx1gdYr2PzVvs1nEY
# 4jTG1MXSx9zFcuvFcsUf8euf8cvXeH6JL6/x9Ba799geYn2M1RTjKYY5+iW6GuXWK4W/CCF35BLC
# SwXfY/tNAi//8taL5Yo/45ff4x+XFrYQvsd2H5tLC4WQeyOE3JFvJsJDrFdx3MemhbCP+RJC7tPX
# eP4zfnmJL99PhMdYtYlwjl4IuStCyB2pUb65LjrG9M0s2K6tzdHferFc8RJf2iz4r66OujTKHRJC
# 7sj3e4T72LQQXjYF269RIbxPr/HU+ne5LrqPzSHWh1hPMbo0yn0SQu5IC+HnifDzLLhEt0TXfp8e
# Y3XrxXLFW+za8RpP77G9OhG2ofDWK4W/CCF35Ps9wu9DeIqh/ddbL5Yr2q0x77F9i1273ffzRNi+
# dyZC7o0QckfaNc9212h7RqJEjY99wfabtP1W3cfm1ovlinaj7zevrYWfJ8IaRQu5H0LIHfk8ER5j
# 9Xlf8DILtvsPhfA+tW9Nu6z9+fh816iJkHsjhNyRyx5hmwVL1G/2Bdt9pKs4ruJ468VyRfs2taOd
# f/MVl0a5Q0LIHfk8EV7efp4Fx5jaM4VjTLdeLFe07dv2erlN9POrm2W4Q0LIHWl7hG1f8JLAtl84
# xOmb11svlivaHzGtdu3k+7cmQu6NEHJHLhPhZRbsYmlXSi8fMeqzRu9Z+661me9y8s1bIeTeCCF3
# pPWvRmkbhJedwqtvb71Yrmi3g16O9t28+vbWK4W/CCF35OqvSM17dLLHnRNC7sqV35h+jQJ/K/du
# AZCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQ2nDrBfDfKNF10fcx9DGOdVyV9SrWm7qb4ngop1OdpliWMs+xLPXWa4Wf0K+/xvNzfX6u
# T1/iaRe7Xd1uY72KcRXjWIch+j66rpZy64Xy3xDCR1I+QjiOsVrFehXbbT0cy3yKaaotgRE1Ioof
# RPgbPD/Xf/xan3+J5y/16UvdbWOzrdtt3axjtYpxiGGIrgs/f49FCB9Jiei66PoYhjqMZb2ux6ls
# 1nHa1Wkq81znuf0r4yD8LZ6f6/Mv8eWpPn2pT7vY7up2E6tWwVUMQ+366PsIIXwoQvhISql9X4Y2
# EY6xXsc0xbRrs2BtCez76LrS91oIP97Tl/Ms+PwlWgt3u7rdxHpdV2OMY/SdifDxCOEj+bg0Woeh
# tD3CzaZOp1KXuixtECxtf6Lvb71W+Bk97c79e/pSd7vYbuu6VXAd41jHMYahdp2B8MEI4SNpIRyG
# GNoe4RTLEpdZsOtK19VxPDfy1ouFn9BuV3fb2O7q0y6227p7it022v0yq1UMY/T9+X6ZW6+U/4IQ
# PpLyf+4ajfW6LktZzjfIlNLVrivDUPshRt9Y+Bts290xm9jt6noTu21sNnW1jvW6jmMMvZtlHpLf
# l4+kXfPs+xjHOi9lWaLWGlG6PrqujkMZhrpex3pVNht/kMKP127VXq2j7Qtut7Fax2Zd1+vzExTt
# J7QULXwkQvhISonSJsIhVud9wfi4KBrDUIehHMYYV3VzuPVa4Wc0rqI9KdH2BderWH9UcPXxHGEx
# ET4aIXwkpURX6jC0WTBqPSew7dIfx7Ja1+0Ux2Mcj34Q4ccbx9qelFiNH+fjuYLtfBiiMw4+GiF8
# JG2PsOtjGC5va1dKP8QwxGpVpylOpzKdYppcGoUfbxjaU/N1HGMcYxjPH/M0DB8V7KPva+fDKx+K
# ED6StkdYa42xdN35DtJxrPMcp1PMcznNscz1dIp5vvVa4WfUNia6PvouhqG2t21fsH196KubZR6O
# ED6Sy12jpdSlROnKsMQwxLKcn6P4OImP7UPgR+q62n4G21+i7aTtC3blPAsK4cMRwkfSQlhK2yCM
# Zant5Py2llojzm9dGoUf73w7aIlS2kce1vaVdrQfT7eMPhwhfCRXf8A+JU/84AZk79EJ4cPzQwjw
# /+HeJgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IA
# UhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBS
# E0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUvtf22iy
# givXrz4AAAAASUVORK5CYII=
t/5_filter.t ....... 2/10
#   Failed test 'middle pixel should be red'
#   at t/5_filter.t line 48.
#     Structures begin differing at:
#          $got->[0] = '0.996108949416342'
#     $expected->[0] = '1'

#   Failed test 'there is blue outside'
#   at t/5_filter.t line 74.
#          got: '0'
#     expected: '1'
# PNG of the crisp window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQAgMAAAAPW/YLAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX29fQAAP//AAD///8J
# JlxBAAAAAWJLR0QDEQxM8gAAAOtJREFUeNrtztEJABAUAEA/9vNjCZsxpQ0kSV7dTXApAQAAAAAA
# APBKrtcULS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0trVitNjZ0LS0t
# LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
# LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS2tGK1TWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa
# WlpaWlpaWlpaWlpaWlpaWj+3AAAAAAAAAFib21NvT2Keb5cAAAAASUVORK5CYII=
t/5_filter.t ....... 6/10
#   Failed test 'blue pixel should still be blue'
#   at t/5_filter.t line 95.
#     Structures begin differing at:
#          $got->[0] = '0.960952162966354'
#     $expected->[0] = '0'

#   Failed test 'red pixel should be immediatelly near blue one'
#   at t/5_filter.t line 107.
#     Structures begin differing at:
#          $got->[0] = '0.960952162966354'
#     $expected->[0] = '1'

#   Failed test 'sharp edge should be within blurred edge (1)'
#   at t/5_filter.t line 113.
#     '0'
#         <
#     '0'
# Looks like you failed 5 tests of 10.
t/5_filter.t ....... Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/10 subtests
t/90_MANIFEST.t .... ok
t/91_critic.t ...... skipped: Author test.  Set $ENV{TEST_AUTHOR} to a true value to run.

Test Summary Report
-------------------
t/2_transparent.t (Wstat: 768 Tests: 4 Failed: 3)
  Failed tests:  2-4
  Non-zero exit status: 3
t/5_filter.t     (Wstat: 1280 Tests: 10 Failed: 5)
  Failed tests:  2, 4, 6, 8-9
  Non-zero exit status: 5
Files=7, Tests=63,  5 wallclock secs ( 0.04 usr  0.03 sys +  1.37 cusr  0.70 csys =  2.14 CPU)
Result: FAIL
Failed 2/7 test programs. 8/63 subtests failed.
make: *** [Makefile:885: test_dynamic] Error 255
builder for '/nix/store/62pzl4q3y3xvcvzj23mlb11b3np0hqw5-perl5.32.1-Gtk3-ImageView-6.drv' failed with exit code 2
error: build of '/nix/store/62pzl4q3y3xvcvzj23mlb11b3np0hqw5-perl5.32.1-Gtk3-ImageView-6.drv' failed

@DarthGandalf
Copy link
Collaborator

Can you try this patch and show output?

diff --git a/t/2_transparent.t b/t/2_transparent.t
index 8cf0da7..f8bc7fb 100644
--- a/t/2_transparent.t
+++ b/t/2_transparent.t
@@ -4,6 +4,7 @@ use File::Temp;
 use Image::Magick;
 use Test::More tests => 4;
 use MIME::Base64;
+use Data::Dumper;
 
 BEGIN {
     use Glib qw/TRUE FALSE/;
@@ -55,6 +56,7 @@ diag( encode_base64( $image->ImageToBlob ) );
 my $x      = $image->Get('width') / 2;
 my $y      = $image->Get('height') / 2;
 my @middle = $image->GetPixel( x => $x, y => $y );
+diag(Dumper($x, $y, \@middle));
 is_deeply( \@middle, [ 0, 1, 0 ], 'middle pixel should be green' );
 
 my $found;

@pacien
Copy link
Author

pacien commented Mar 15, 2021

With tihs patch, I have the following output:

❯❯ nix-build -A perlPackages.Gtk3ImageView
these derivations will be built:
  /nix/store/sbwway5kyis829nc39zf26a93gj4kzy6-transparent.patch.drv
  /nix/store/ls70xn7j3w9kp0lfiwas9n1sxr9b0spa-perl5.32.1-Gtk3-ImageView-6.drv
building '/nix/store/sbwway5kyis829nc39zf26a93gj4kzy6-transparent.patch.drv'...
building '/nix/store/ls70xn7j3w9kp0lfiwas9n1sxr9b0spa-perl5.32.1-Gtk3-ImageView-6.drv'...
unpacking sources
unpacking source archive /nix/store/5n6jnidvg2xlmzbj82b6agy4x017kdil-Gtk3-ImageView-6.tar.gz
source root is Gtk3-ImageView-6
setting SOURCE_DATE_EPOCH to timestamp 1605623921 of file Gtk3-ImageView-6/META.yml
patching sources
applying patch /nix/store/w2clyv5fipa76bbnxpx9dswbibbl0spk-837c5ba17f763ee830da880d3affe95635728303.patch
patching file Makefile.PL
patching file lib/Gtk3/ImageView.pm
patching file t/1_basics.t
patching file t/2_transparent.t
patching file t/4_select.t
applying patch /nix/store/rg2y631pfbhxvhisbn4zig1h6rgh4jxj-79c96d95634499375809c7763e840f5499882f19.patch
patching file t/1_basics.t
applying patch /nix/store/9p9sid2f4cg6hbxcc2hnn56hna59vki0-transparent.patch
patching file t/2_transparent.t
configuring
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Gtk3::ImageView
Writing MYMETA.yml and MYMETA.json
no configure script, doing nothing
building
build flags: SHELL=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
cp lib/Gtk3/ImageView/Tool/SelectorDragger.pm blib/lib/Gtk3/ImageView/Tool/SelectorDragger.pm
cp lib/Gtk3/ImageView.pm blib/lib/Gtk3/ImageView.pm
cp lib/Gtk3/ImageView/Tool/Selector.pm blib/lib/Gtk3/ImageView/Tool/Selector.pm
cp lib/Gtk3/ImageView/Tool.pm blib/lib/Gtk3/ImageView/Tool.pm
cp lib/Gtk3/ImageView/Tool/Dragger.pm blib/lib/Gtk3/ImageView/Tool/Dragger.pm
Manifying 1 pod document
running tests
PERL_DL_NONLAZY=1 "/nix/store/192j9y62kp6a5kjw1ylgg1s4w7yxchc5-perl-5.32.1/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_basics.t ....... ok
t/2_transparent.t .. 1/4 # PNG of the shown window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQBAMAAACAGwOrAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAMFBMVEVsbPo+PfzJyPb29fQA
# AP+5uPddXPuamvj/AADwDwDQLwDAPwBwjwBAvwAA/wD///+wij47AAAAAWJLR0QPGLoA2QAAA9VJ
# REFUeNrt2sFpVUEYhuFrBwrBBsQGlBQgWIEiri3CHkxsICUE0oAkNaSDxA6SGtzcnLuZzTmc+b9x
# eGYV3sWFecjqzHd49eZ4Xr/7+HK0djucfT6eT1+XqLUbLFiw4g0WLFjxBgsWrHiDBQtWvMGCBSve
# YMHqhLV8Pn3789vxfNHa7fD+5c/vP5avzlq7HZb/sfPTP57WbrBgwYo3WLBgxRssWLDiDRYsWPEG
# CxaseIMFqzfWh9OYWWu304PFADvz0ZunsBUNFixY8QYLFqx4gwULVrzBggUr3mDBghVvsGB1wlo+
# nw6wMx+92cHbwfdpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4gwWrN9YAO/PRmx38iuYpbEWDBQtW
# vMGCBSveYMGCFW+wYMGKN1iwYMUbLFidsJbPpwPszEdvJTv4XwVnmh18BVbFPWDBggULFixYsGDB
# ggULFixYsGDBgjU9Vsf9eCnW/76Dr8CquEfJU1gFVsU9YMGCBQsWLFiwYMGCBQsWLFiwYMGCNStW
# xX68cbeLm7vN5/aq8YMV90jt4C/vHzefh+vGD868g//993nzefrT+MGKe8CCBQsWLFiwYMGCBQsW
# LFiwYMGCBWt6rNodfD+sCXfwu2NV3CP1FLY7VsU9YMGCBQsWLFiwYMGCBQsWLFiwYMGCNStWxX68
# AqviHqkd/O5YdvArsCruAQsWLFiwYMGCBQsWLFiwYMGCBQsWrOmx7ODt4PdsnsJWNFiwYMGCBQsW
# LFiwYMGCBQsWLFiwYM2KVbEfr8CquIcdvB18n3vAggULFixYsGDBggULFixYsGDBggVreiw7eDv4
# PZunsBUNFixYsGDBggULFixYsGDBggULFixYs2JV7Mcbd7u8f9x8Hq4bP1hxj9QO/uLmbvO5vWr8
# 4Mw7+N1PxT1gwYIFCxYsWLBgwYIFCxYsWLBgwYI1PVbtDr4f1oQ7+N1PxT1ST2G7n4p7wIIFCxYs
# WLBgwYIFCxYsWLBgwYIFa1asiv14BVbFPUp28LO0kqewWRosWLDiDRYsWPEGCxaseIMFC1a8wYIF
# K95gweqN1XE/Pksr2cHP0kqewmZpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4gwWrE9by+bTjfnyW
# ZgdvB9+nwYIFK95gwYIVb7BgwYo3WLBgxRssWLDiDRas3lgD7MxHb3bwK5qnsBUNFixY8QYLFqx4
# gwULVrzBggUr3mDBghVvsGB1wlo+nw6wMx+92cHbwfdpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4
# gwWrN9YAO/PR2z/YV7oN85M6FQAAAABJRU5ErkJggg==
# $VAR1 = 300;
# $VAR2 = 200;
# $VAR3 = [
#           '0',
#           '0',
#           '0.996108949416342'
#         ];
t/2_transparent.t .. 2/4
#   Failed test 'middle pixel should be green'
#   at t/2_transparent.t line 60.
#     Structures begin differing at:
#          $got->[1] = '0'
#     $expected->[1] = '1'

#   Failed test 'there is red background'
#   at t/2_transparent.t line 73.
#          got: '0'
#     expected: '1'

#   Failed test 'there is blue outside'
#   at t/2_transparent.t line 90.
#          got: '0'
#     expected: '1'
# Looks like you failed 3 tests of 4.
t/2_transparent.t .. Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/4 subtests
t/3_zoom.t ......... ok
t/4_select.t ....... ok
t/5_filter.t ....... 1/10 # PNG of the blurred window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAQ
# 6ElEQVR42u3dWW/jSJaA0RtctDld1T3//z/Wkl4kUWTMQ8gqT6a60Y3JgqS854AQKFc+BGDYny+D
# VJW315cAgKy6Wy8AAG5JCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgB
# SE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFI
# TQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhN
# CAFITQgBSG249QL47yxL1PpvjlIjao2ot14o/JRKlBIlopRa2vm/PngUQvhIluWvY55jqaVezj9/
# fYllufVa4WfUdeej78un8yhddKW28/ZFIXwgQvhIaj2n7jSXZY55jnmO0+nyWuYl5jnmU8zzrdcK
# P6O+j76Pro+hj76vw3D+St/HMJSuj1pr36vggxHCR9JCeJrLfIppitP5tUyn+PSVcjrFdLr1WuFn
# NPQxjjEMdRxjGMowtq/UYYhliWGIGEsptdqbeChC+EhqjXmOZY5pimmK4zGmqXw+P05xmuJ4jOPR
# X6Tw441jXa1iGMtqPJ+PY8xLWS3n+HVdLCWE8LEI4SOpNZZa2oXQ4zEOxzId43CIw6EcjvH5/Hi4
# 9VrhZzSuynoV63Vdr2NclfUU63VdlliWUmstJbouSleWRQkfiRA+klqjLjGfJ8IyHWO/j/2+HI6x
# f4/DoewPcdjHfl/2Qgh/g/Uqttt6nMo0xWbzVwIjoutK19VhiGExET4YIXwk5z3CU5xOZZricIj9
# vuz38f4e7+/lfR/79/Le3r65NAo/3npTD8eyWce0q9OpzHNd5ogoEbXroiul7Re2x5ncMvMohPCR
# tD3CeY7pFNN0vgraKvj2Fm9v5e093t/K21u8CiH8DXZTzKc47eqylLrUcwL76LoyjrUfzs8vmQgf
# ixA+kstEOJ/3CGP/UcGXl/L6Fm+v5fUtXl/Ky+ut1wo/o+OhTFOdpjLPdVlKRI0oXVe7rt1NGqeT
# ED4eIXwkH88Rlsse4eFQ3vfx9nau4NeXeH0pX1/i5auJEH6806kuS5nnj1mwK6Wr41CGoR7HslrV
# eS7zXJdafLzTAxHCR1JrWZaYlzid4tj2CA+xfy9v7+cKfv2zfH0pX/+MP/4UQvjxpum8PfFpFizD
# UIehrNZ1muLk0ugDEsJHUuNjj3Aqp7ZHuI/3fby/na+IXir4xx+3Xiv8jC6XQ/s+uq6OYxmGul7H
# YYztFKdTWea6LKbBByOEj+R8afR0eY4w9vvy/h5v5wpGq+Dvv8dvv5kI4cf7+PDC2nWllGg3yKxX
# ZVzV4zGm0/kjD02Ej0UIH8rHZ41Opzgey/EQ+0MbB8vLa7x8LW0W/O23IoTwd1iWWkqJiL6vfR/j
# qoxDbDZ1c4jjsUxTnee/nizkUfj/EQKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApDacOsFwGe1i6VE/U+OWy+VK2qU//yIKLde
# L0QIIXeli+Vy9DH/+/NbL5YrlujaMUf/78+rCnI3hJA7UqK21A1x6mNuRzv//iu3XixXzNG34xTD
# 5fXzV0rUOXoV5K4IIXekhXCI0xCnMaZ//3rrxXLFKYYpxquvXSynGCKiRnFlm7sihNyRErXNfGNM
# Y0yrOP6r11Ucb71YrphiPMbqm9c+5mOsWvzadVEh5K4IIXfk86XRVRzXcWiv7fh8vo7DrRfLFcdY
# HWLdjst529MtUWuUFkJbvNwVIeSOXEJ4mQg3sd/Efh2Hbbyv49DetuPWi+WKQ6zfY9sG931sLgmM
# j1mwXSM1EXJXhJA78nmPsM1/m9hv4/37Yxdvt14sV+xjs47DPjbtT5l2obv9pxbCtl/YHoBxywx3
# Qgi5I9/sEbZLoK18T/G6i7fL8RSvt14sV7zFrv0d8/kRl/bIREtge/rFRMhdEULuyPcT4aWCX+Ll
# KV7b8SVevsTLrRfLFes4XGbBSwg/z4KtkULIXRFC7sj3e4SthW0EfIrX5/j6JV6e4+tzfL31Yrmi
# de7q5dBjrI6xahO/m2W4K0LIHfn+rtG2R9hC+Bxff4k/2+uv8cetF8sVV/cFTzGcYjjEuj0DaiLk
# 3gghd+T7PcLPIWyzYKvgP+L3Wy+WK67uC7ZHKVoF7RFyh4SQO/Kv7hrdxdvnCv4zfvtn/HbrxXLF
# 51mwRvkcwvZMRWuhEHJXhJA78nmP8BLCz+NgmwX/Gb/9jxDepS6W9lBE+3zR9sky+9jsY9NCaCLk
# Dvn/EQKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApDacOsFwF9qlCW6OfpTDFOMx1gdYr2PzVvs1nEY
# 4jTG1MXSx9zFcuvFcsUf8euf8cvXeH6JL6/x9Ba799geYn2M1RTjKYY5+iW6GuXWK4W/CCF35BLC
# SwXfY/tNAi//8taL5Yo/45ff4x+XFrYQvsd2H5tLC4WQeyOE3JFvJsJDrFdx3MemhbCP+RJC7tPX
# eP4zfnmJL99PhMdYtYlwjl4IuStCyB2pUb65LjrG9M0s2K6tzdHferFc8RJf2iz4r66OujTKHRJC
# 7sj3e4T72LQQXjYF269RIbxPr/HU+ne5LrqPzSHWh1hPMbo0yn0SQu5IC+HnifDzLLhEt0TXfp8e
# Y3XrxXLFW+za8RpP77G9OhG2ofDWK4W/CCF35Ps9wu9DeIqh/ddbL5Yr2q0x77F9i1273ffzRNi+
# dyZC7o0QckfaNc9212h7RqJEjY99wfabtP1W3cfm1ovlinaj7zevrYWfJ8IaRQu5H0LIHfk8ER5j
# 9Xlf8DILtvsPhfA+tW9Nu6z9+fh816iJkHsjhNyRyx5hmwVL1G/2Bdt9pKs4ruJ468VyRfs2taOd
# f/MVl0a5Q0LIHfk8EV7efp4Fx5jaM4VjTLdeLFe07dv2erlN9POrm2W4Q0LIHWl7hG1f8JLAtl84
# xOmb11svlivaHzGtdu3k+7cmQu6NEHJHLhPhZRbsYmlXSi8fMeqzRu9Z+661me9y8s1bIeTeCCF3
# pPWvRmkbhJedwqtvb71Yrmi3g16O9t28+vbWK4W/CCF35OqvSM17dLLHnRNC7sqV35h+jQJ/K/du
# AZCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQ2nDrBfDfKNF10fcx9DGOdVyV9SrWm7qb4ngop1OdpliWMs+xLPXWa4Wf0K+/xvNzfX6u
# T1/iaRe7Xd1uY72KcRXjWIch+j66rpZy64Xy3xDCR1I+QjiOsVrFehXbbT0cy3yKaaotgRE1Ioof
# RPgbPD/Xf/xan3+J5y/16UvdbWOzrdtt3axjtYpxiGGIrgs/f49FCB9Jiei66PoYhjqMZb2ux6ls
# 1nHa1Wkq81znuf0r4yD8LZ6f6/Mv8eWpPn2pT7vY7up2E6tWwVUMQ+366PsIIXwoQvhISql9X4Y2
# EY6xXsc0xbRrs2BtCez76LrS91oIP97Tl/Ms+PwlWgt3u7rdxHpdV2OMY/SdifDxCOEj+bg0Woeh
# tD3CzaZOp1KXuixtECxtf6Lvb71W+Bk97c79e/pSd7vYbuu6VXAd41jHMYahdp2B8MEI4SNpIRyG
# GNoe4RTLEpdZsOtK19VxPDfy1ouFn9BuV3fb2O7q0y6227p7it022v0yq1UMY/T9+X6ZW6+U/4IQ
# PpLyf+4ajfW6LktZzjfIlNLVrivDUPshRt9Y+Bts290xm9jt6noTu21sNnW1jvW6jmMMvZtlHpLf
# l4+kXfPs+xjHOi9lWaLWGlG6PrqujkMZhrpex3pVNht/kMKP127VXq2j7Qtut7Fax2Zd1+vzExTt
# J7QULXwkQvhISonSJsIhVud9wfi4KBrDUIehHMYYV3VzuPVa4Wc0rqI9KdH2BderWH9UcPXxHGEx
# ET4aIXwkpURX6jC0WTBqPSew7dIfx7Ja1+0Ux2Mcj34Q4ccbx9qelFiNH+fjuYLtfBiiMw4+GiF8
# JG2PsOtjGC5va1dKP8QwxGpVpylOpzKdYppcGoUfbxjaU/N1HGMcYxjPH/M0DB8V7KPva+fDKx+K
# ED6StkdYa42xdN35DtJxrPMcp1PMcznNscz1dIp5vvVa4WfUNia6PvouhqG2t21fsH196KubZR6O
# ED6Sy12jpdSlROnKsMQwxLKcn6P4OImP7UPgR+q62n4G21+i7aTtC3blPAsK4cMRwkfSQlhK2yCM
# Zant5Py2llojzm9dGoUf73w7aIlS2kce1vaVdrQfT7eMPhwhfCRXf8A+JU/84AZk79EJ4cPzQwjw
# /+HeJgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IA
# UhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBS
# E0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUvtf22iy
# givXrz4AAAAASUVORK5CYII=
t/5_filter.t ....... 2/10
#   Failed test 'middle pixel should be red'
#   at t/5_filter.t line 48.
#     Structures begin differing at:
#          $got->[0] = '0.996108949416342'
#     $expected->[0] = '1'

#   Failed test 'there is blue outside'
#   at t/5_filter.t line 74.
#          got: '0'
#     expected: '1'
# PNG of the crisp window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQAgMAAAAPW/YLAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX29fQAAP//AAD///8J
# JlxBAAAAAWJLR0QDEQxM8gAAAOtJREFUeNrtztEJABAUAEA/9vNjCZsxpQ0kSV7dTXApAQAAAAAA
# APBKrtcULS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0trVitNjZ0LS0t
# LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
# LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS2tGK1TWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa
# WlpaWlpaWlpaWlpaWlpaWj+3AAAAAAAAAFib21NvT2Keb5cAAAAASUVORK5CYII=
t/5_filter.t ....... 6/10
#   Failed test 'blue pixel should still be blue'
#   at t/5_filter.t line 95.
#     Structures begin differing at:
#          $got->[0] = '0.960952162966354'
#     $expected->[0] = '0'

#   Failed test 'red pixel should be immediatelly near blue one'
#   at t/5_filter.t line 107.
#     Structures begin differing at:
#          $got->[0] = '0.960952162966354'
#     $expected->[0] = '1'

#   Failed test 'sharp edge should be within blurred edge (1)'
#   at t/5_filter.t line 113.
#     '0'
#         <
#     '0'
# Looks like you failed 5 tests of 10.
t/5_filter.t ....... Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/10 subtests
t/90_MANIFEST.t .... ok
t/91_critic.t ...... skipped: Author test.  Set $ENV{TEST_AUTHOR} to a true value to run.

Test Summary Report
-------------------
t/2_transparent.t (Wstat: 768 Tests: 4 Failed: 3)
  Failed tests:  2-4
  Non-zero exit status: 3
t/5_filter.t     (Wstat: 1280 Tests: 10 Failed: 5)
  Failed tests:  2, 4, 6, 8-9
  Non-zero exit status: 5
Files=7, Tests=63,  4 wallclock secs ( 0.04 usr  0.02 sys +  1.41 cusr  0.75 csys =  2.22 CPU)
Result: FAIL
Failed 2/7 test programs. 8/63 subtests failed.
make: *** [Makefile:885: test_dynamic] Error 255
builder for '/nix/store/ls70xn7j3w9kp0lfiwas9n1sxr9b0spa-perl5.32.1-Gtk3-ImageView-6.drv' failed with exit code 2
error: build of '/nix/store/ls70xn7j3w9kp0lfiwas9n1sxr9b0spa-perl5.32.1-Gtk3-ImageView-6.drv' failed

@DarthGandalf
Copy link
Collaborator

DarthGandalf commented Mar 15, 2021

Interesting. So while $x and $y have correct values, which on the image point at the middle of the green rectangle, somehow ImageMagick finds the almost-blue pixel there, which is actually on the blurred edge between blue and white.

@DarthGandalf
Copy link
Collaborator

Maybe this will show anything useful?

diff --git a/t/2_transparent.t b/t/2_transparent.t
index 8cf0da7..f733bba 100644
--- a/t/2_transparent.t
+++ b/t/2_transparent.t
@@ -4,6 +4,7 @@ use File::Temp;
 use Image::Magick;
 use Test::More tests => 4;
 use MIME::Base64;
+use Data::Dumper;
 
 BEGIN {
     use Glib qw/TRUE FALSE/;
@@ -55,6 +56,16 @@ diag( encode_base64( $image->ImageToBlob ) );
 my $x      = $image->Get('width') / 2;
 my $y      = $image->Get('height') / 2;
 my @middle = $image->GetPixel( x => $x, y => $y );
+diag(Dumper($x, $y, \@middle));
+diag($image->Get('base-rows'));
+diag($image->Get('base-columns'));
+diag($image->Get('density'));
+diag($image->Get('x-resolution'));
+diag($image->Get('y-resolution'));
+diag($image->Get('units'));
+diag($image->Get('size'));
+diag($image->Get('sampling-factor'));
+diag($image->Get("pixel[$x,$y]"));
 is_deeply( \@middle, [ 0, 1, 0 ], 'middle pixel should be green' );
 
 my $found;

@pacien
Copy link
Author

pacien commented Mar 15, 2021

Here we go:

❯❯ nix-build -A perlPackages.Gtk3ImageView
these derivations will be built:
  /nix/store/qv8pjczsbgssn7pavims2igj1vqxmvh2-transparent_2.patch.drv
  /nix/store/5wzvrfsj34ksa3f1v77dma41wirg2ynl-perl5.32.1-Gtk3-ImageView-6.drv
building '/nix/store/qv8pjczsbgssn7pavims2igj1vqxmvh2-transparent_2.patch.drv'...
building '/nix/store/5wzvrfsj34ksa3f1v77dma41wirg2ynl-perl5.32.1-Gtk3-ImageView-6.drv'...
unpacking sources
unpacking source archive /nix/store/5n6jnidvg2xlmzbj82b6agy4x017kdil-Gtk3-ImageView-6.tar.gz
source root is Gtk3-ImageView-6
setting SOURCE_DATE_EPOCH to timestamp 1605623921 of file Gtk3-ImageView-6/META.yml
patching sources
applying patch /nix/store/w2clyv5fipa76bbnxpx9dswbibbl0spk-837c5ba17f763ee830da880d3affe95635728303.patch
patching file Makefile.PL
patching file lib/Gtk3/ImageView.pm
patching file t/1_basics.t
patching file t/2_transparent.t
patching file t/4_select.t
applying patch /nix/store/rg2y631pfbhxvhisbn4zig1h6rgh4jxj-79c96d95634499375809c7763e840f5499882f19.patch
patching file t/1_basics.t
applying patch /nix/store/rqgqr7r7ncw6yi4fvx7igjvmxp0j7336-transparent_2.patch
patching file t/2_transparent.t
patch unexpectedly ends in middle of line
Hunk #2 succeeded at 56 with fuzz 1.
configuring
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Gtk3::ImageView
Writing MYMETA.yml and MYMETA.json
no configure script, doing nothing
building
build flags: SHELL=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
cp lib/Gtk3/ImageView/Tool/SelectorDragger.pm blib/lib/Gtk3/ImageView/Tool/SelectorDragger.pm
cp lib/Gtk3/ImageView/Tool/Dragger.pm blib/lib/Gtk3/ImageView/Tool/Dragger.pm
cp lib/Gtk3/ImageView/Tool.pm blib/lib/Gtk3/ImageView/Tool.pm
cp lib/Gtk3/ImageView.pm blib/lib/Gtk3/ImageView.pm
cp lib/Gtk3/ImageView/Tool/Selector.pm blib/lib/Gtk3/ImageView/Tool/Selector.pm
Manifying 1 pod document
running tests
PERL_DL_NONLAZY=1 "/nix/store/192j9y62kp6a5kjw1ylgg1s4w7yxchc5-perl-5.32.1/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_basics.t ....... ok
t/2_transparent.t .. 1/4 # PNG of the shown window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQBAMAAACAGwOrAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAMFBMVEVsbPo+PfzJyPb29fQA
# AP+5uPddXPuamvj/AADwDwDQLwDAPwBwjwBAvwAA/wD///+wij47AAAAAWJLR0QPGLoA2QAAA9VJ
# REFUeNrt2sFpVUEYhuFrBwrBBsQGlBQgWIEiri3CHkxsICUE0oAkNaSDxA6SGtzcnLuZzTmc+b9x
# eGYV3sWFecjqzHd49eZ4Xr/7+HK0djucfT6eT1+XqLUbLFiw4g0WLFjxBgsWrHiDBQtWvMGCBSve
# YMHqhLV8Pn3789vxfNHa7fD+5c/vP5avzlq7HZb/sfPTP57WbrBgwYo3WLBgxRssWLDiDRYsWPEG
# CxaseIMFqzfWh9OYWWu304PFADvz0ZunsBUNFixY8QYLFqx4gwULVrzBggUr3mDBghVvsGB1wlo+
# nw6wMx+92cHbwfdpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4gwWrN9YAO/PRmx38iuYpbEWDBQtW
# vMGCBSveYMGCFW+wYMGKN1iwYMUbLFidsJbPpwPszEdvJTv4XwVnmh18BVbFPWDBggULFixYsGDB
# ggULFixYsGDBgjU9Vsf9eCnW/76Dr8CquEfJU1gFVsU9YMGCBQsWLFiwYMGCBQsWLFiwYMGCNStW
# xX68cbeLm7vN5/aq8YMV90jt4C/vHzefh+vGD868g//993nzefrT+MGKe8CCBQsWLFiwYMGCBQsW
# LFiwYMGCBWt6rNodfD+sCXfwu2NV3CP1FLY7VsU9YMGCBQsWLFiwYMGCBQsWLFiwYMGCNStWxX68
# AqviHqkd/O5YdvArsCruAQsWLFiwYMGCBQsWLFiwYMGCBQsWrOmx7ODt4PdsnsJWNFiwYMGCBQsW
# LFiwYMGCBQsWLFiwYM2KVbEfr8CquIcdvB18n3vAggULFixYsGDBggULFixYsGDBggVreiw7eDv4
# PZunsBUNFixYsGDBggULFixYsGDBggULFixYs2JV7Mcbd7u8f9x8Hq4bP1hxj9QO/uLmbvO5vWr8
# 4Mw7+N1PxT1gwYIFCxYsWLBgwYIFCxYsWLBgwYI1PVbtDr4f1oQ7+N1PxT1ST2G7n4p7wIIFCxYs
# WLBgwYIFCxYsWLBgwYIFa1asiv14BVbFPUp28LO0kqewWRosWLDiDRYsWPEGCxaseIMFC1a8wYIF
# K95gweqN1XE/Pksr2cHP0kqewmZpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4gwWrE9by+bTjfnyW
# ZgdvB9+nwYIFK95gwYIVb7BgwYo3WLBgxRssWLDiDRas3lgD7MxHb3bwK5qnsBUNFixY8QYLFqx4
# gwULVrzBggUr3mDBghVvsGB1wlo+nw6wMx+92cHbwfdpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4
# gwWrN9YAO/PR2z/YV7oN85M6FQAAAABJRU5ErkJggg==
# $VAR1 = 300;
# $VAR2 = 200;
# $VAR3 = [
#           '0',
#           '0',
#           '0.996108949416342'
#         ];
# 400
# 600
# 0x0
# 0
# 0
# undefined units
# undef
# undef
# 0,0,65280,65535
t/2_transparent.t .. 2/4
#   Failed test 'middle pixel should be green'
#   at t/2_transparent.t line 69.
#     Structures begin differing at:
#          $got->[1] = '0'
#     $expected->[1] = '1'

#   Failed test 'there is red background'
#   at t/2_transparent.t line 82.
#          got: '0'
#     expected: '1'

#   Failed test 'there is blue outside'
#   at t/2_transparent.t line 99.
#          got: '0'
#     expected: '1'
# Looks like you failed 3 tests of 4.
t/2_transparent.t .. Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/4 subtests
t/3_zoom.t ......... ok
t/4_select.t ....... ok
t/5_filter.t ....... 1/10 # PNG of the blurred window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAQ
# 6ElEQVR42u3dWW/jSJaA0RtctDld1T3//z/Wkl4kUWTMQ8gqT6a60Y3JgqS854AQKFc+BGDYny+D
# VJW315cAgKy6Wy8AAG5JCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgB
# SE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFI
# TQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhN
# CAFITQgBSG249QL47yxL1PpvjlIjao2ot14o/JRKlBIlopRa2vm/PngUQvhIluWvY55jqaVezj9/
# fYllufVa4WfUdeej78un8yhddKW28/ZFIXwgQvhIaj2n7jSXZY55jnmO0+nyWuYl5jnmU8zzrdcK
# P6O+j76Pro+hj76vw3D+St/HMJSuj1pr36vggxHCR9JCeJrLfIppitP5tUyn+PSVcjrFdLr1WuFn
# NPQxjjEMdRxjGMowtq/UYYhliWGIGEsptdqbeChC+EhqjXmOZY5pimmK4zGmqXw+P05xmuJ4jOPR
# X6Tw441jXa1iGMtqPJ+PY8xLWS3n+HVdLCWE8LEI4SOpNZZa2oXQ4zEOxzId43CIw6EcjvH5/Hi4
# 9VrhZzSuynoV63Vdr2NclfUU63VdlliWUmstJbouSleWRQkfiRA+klqjLjGfJ8IyHWO/j/2+HI6x
# f4/DoewPcdjHfl/2Qgh/g/Uqttt6nMo0xWbzVwIjoutK19VhiGExET4YIXwk5z3CU5xOZZricIj9
# vuz38f4e7+/lfR/79/Le3r65NAo/3npTD8eyWce0q9OpzHNd5ogoEbXroiul7Re2x5ncMvMohPCR
# tD3CeY7pFNN0vgraKvj2Fm9v5e093t/K21u8CiH8DXZTzKc47eqylLrUcwL76LoyjrUfzs8vmQgf
# ixA+kstEOJ/3CGP/UcGXl/L6Fm+v5fUtXl/Ky+ut1wo/o+OhTFOdpjLPdVlKRI0oXVe7rt1NGqeT
# ED4eIXwkH88Rlsse4eFQ3vfx9nau4NeXeH0pX1/i5auJEH6806kuS5nnj1mwK6Wr41CGoR7HslrV
# eS7zXJdafLzTAxHCR1JrWZaYlzid4tj2CA+xfy9v7+cKfv2zfH0pX/+MP/4UQvjxpum8PfFpFizD
# UIehrNZ1muLk0ugDEsJHUuNjj3Aqp7ZHuI/3fby/na+IXir4xx+3Xiv8jC6XQ/s+uq6OYxmGul7H
# YYztFKdTWea6LKbBByOEj+R8afR0eY4w9vvy/h5v5wpGq+Dvv8dvv5kI4cf7+PDC2nWllGg3yKxX
# ZVzV4zGm0/kjD02Ej0UIH8rHZ41Opzgey/EQ+0MbB8vLa7x8LW0W/O23IoTwd1iWWkqJiL6vfR/j
# qoxDbDZ1c4jjsUxTnee/nizkUfj/EQKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApDacOsFwGe1i6VE/U+OWy+VK2qU//yIKLde
# L0QIIXeli+Vy9DH/+/NbL5YrlujaMUf/78+rCnI3hJA7UqK21A1x6mNuRzv//iu3XixXzNG34xTD
# 5fXzV0rUOXoV5K4IIXekhXCI0xCnMaZ//3rrxXLFKYYpxquvXSynGCKiRnFlm7sihNyRErXNfGNM
# Y0yrOP6r11Ucb71YrphiPMbqm9c+5mOsWvzadVEh5K4IIXfk86XRVRzXcWiv7fh8vo7DrRfLFcdY
# HWLdjst529MtUWuUFkJbvNwVIeSOXEJ4mQg3sd/Efh2Hbbyv49DetuPWi+WKQ6zfY9sG931sLgmM
# j1mwXSM1EXJXhJA78nmPsM1/m9hv4/37Yxdvt14sV+xjs47DPjbtT5l2obv9pxbCtl/YHoBxywx3
# Qgi5I9/sEbZLoK18T/G6i7fL8RSvt14sV7zFrv0d8/kRl/bIREtge/rFRMhdEULuyPcT4aWCX+Ll
# KV7b8SVevsTLrRfLFes4XGbBSwg/z4KtkULIXRFC7sj3e4SthW0EfIrX5/j6JV6e4+tzfL31Yrmi
# de7q5dBjrI6xahO/m2W4K0LIHfn+rtG2R9hC+Bxff4k/2+uv8cetF8sVV/cFTzGcYjjEuj0DaiLk
# 3gghd+T7PcLPIWyzYKvgP+L3Wy+WK67uC7ZHKVoF7RFyh4SQO/Kv7hrdxdvnCv4zfvtn/HbrxXLF
# 51mwRvkcwvZMRWuhEHJXhJA78nmP8BLCz+NgmwX/Gb/9jxDepS6W9lBE+3zR9sky+9jsY9NCaCLk
# Dvn/EQKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApDacOsFwF9qlCW6OfpTDFOMx1gdYr2PzVvs1nEY
# 4jTG1MXSx9zFcuvFcsUf8euf8cvXeH6JL6/x9Ba799geYn2M1RTjKYY5+iW6GuXWK4W/CCF35BLC
# SwXfY/tNAi//8taL5Yo/45ff4x+XFrYQvsd2H5tLC4WQeyOE3JFvJsJDrFdx3MemhbCP+RJC7tPX
# eP4zfnmJL99PhMdYtYlwjl4IuStCyB2pUb65LjrG9M0s2K6tzdHferFc8RJf2iz4r66OujTKHRJC
# 7sj3e4T72LQQXjYF269RIbxPr/HU+ne5LrqPzSHWh1hPMbo0yn0SQu5IC+HnifDzLLhEt0TXfp8e
# Y3XrxXLFW+za8RpP77G9OhG2ofDWK4W/CCF35Ps9wu9DeIqh/ddbL5Yr2q0x77F9i1273ffzRNi+
# dyZC7o0QckfaNc9212h7RqJEjY99wfabtP1W3cfm1ovlinaj7zevrYWfJ8IaRQu5H0LIHfk8ER5j
# 9Xlf8DILtvsPhfA+tW9Nu6z9+fh816iJkHsjhNyRyx5hmwVL1G/2Bdt9pKs4ruJ468VyRfs2taOd
# f/MVl0a5Q0LIHfk8EV7efp4Fx5jaM4VjTLdeLFe07dv2erlN9POrm2W4Q0LIHWl7hG1f8JLAtl84
# xOmb11svlivaHzGtdu3k+7cmQu6NEHJHLhPhZRbsYmlXSi8fMeqzRu9Z+661me9y8s1bIeTeCCF3
# pPWvRmkbhJedwqtvb71Yrmi3g16O9t28+vbWK4W/CCF35OqvSM17dLLHnRNC7sqV35h+jQJ/K/du
# AZCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQ2nDrBfDfKNF10fcx9DGOdVyV9SrWm7qb4ngop1OdpliWMs+xLPXWa4Wf0K+/xvNzfX6u
# T1/iaRe7Xd1uY72KcRXjWIch+j66rpZy64Xy3xDCR1I+QjiOsVrFehXbbT0cy3yKaaotgRE1Ioof
# RPgbPD/Xf/xan3+J5y/16UvdbWOzrdtt3axjtYpxiGGIrgs/f49FCB9Jiei66PoYhjqMZb2ux6ls
# 1nHa1Wkq81znuf0r4yD8LZ6f6/Mv8eWpPn2pT7vY7up2E6tWwVUMQ+366PsIIXwoQvhISql9X4Y2
# EY6xXsc0xbRrs2BtCez76LrS91oIP97Tl/Ms+PwlWgt3u7rdxHpdV2OMY/SdifDxCOEj+bg0Woeh
# tD3CzaZOp1KXuixtECxtf6Lvb71W+Bk97c79e/pSd7vYbuu6VXAd41jHMYahdp2B8MEI4SNpIRyG
# GNoe4RTLEpdZsOtK19VxPDfy1ouFn9BuV3fb2O7q0y6227p7it022v0yq1UMY/T9+X6ZW6+U/4IQ
# PpLyf+4ajfW6LktZzjfIlNLVrivDUPshRt9Y+Bts290xm9jt6noTu21sNnW1jvW6jmMMvZtlHpLf
# l4+kXfPs+xjHOi9lWaLWGlG6PrqujkMZhrpex3pVNht/kMKP127VXq2j7Qtut7Fax2Zd1+vzExTt
# J7QULXwkQvhISonSJsIhVud9wfi4KBrDUIehHMYYV3VzuPVa4Wc0rqI9KdH2BderWH9UcPXxHGEx
# ET4aIXwkpURX6jC0WTBqPSew7dIfx7Ja1+0Ux2Mcj34Q4ccbx9qelFiNH+fjuYLtfBiiMw4+GiF8
# JG2PsOtjGC5va1dKP8QwxGpVpylOpzKdYppcGoUfbxjaU/N1HGMcYxjPH/M0DB8V7KPva+fDKx+K
# ED6StkdYa42xdN35DtJxrPMcp1PMcznNscz1dIp5vvVa4WfUNia6PvouhqG2t21fsH196KubZR6O
# ED6Sy12jpdSlROnKsMQwxLKcn6P4OImP7UPgR+q62n4G21+i7aTtC3blPAsK4cMRwkfSQlhK2yCM
# Zant5Py2llojzm9dGoUf73w7aIlS2kce1vaVdrQfT7eMPhwhfCRXf8A+JU/84AZk79EJ4cPzQwjw
# /+HeJgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IA
# UhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBS
# E0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUvtf22iy
# givXrz4AAAAASUVORK5CYII=
t/5_filter.t ....... 2/10
#   Failed test 'middle pixel should be red'
#   at t/5_filter.t line 48.
#     Structures begin differing at:
#          $got->[0] = '0.996108949416342'
#     $expected->[0] = '1'

#   Failed test 'there is blue outside'
#   at t/5_filter.t line 74.
#          got: '0'
#     expected: '1'
# PNG of the crisp window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQAgMAAAAPW/YLAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX29fQAAP//AAD///8J
# JlxBAAAAAWJLR0QDEQxM8gAAAOtJREFUeNrtztEJABAUAEA/9vNjCZsxpQ0kSV7dTXApAQAAAAAA
# APBKrtcULS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0trVitNjZ0LS0t
# LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
# LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS2tGK1TWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa
# WlpaWlpaWlpaWlpaWlpaWj+3AAAAAAAAAFib21NvT2Keb5cAAAAASUVORK5CYII=
t/5_filter.t ....... 6/10
#   Failed test 'blue pixel should still be blue'
#   at t/5_filter.t line 95.
#     Structures begin differing at:
#          $got->[0] = '0.960952162966354'
#     $expected->[0] = '0'

#   Failed test 'red pixel should be immediatelly near blue one'
#   at t/5_filter.t line 107.
#     Structures begin differing at:
#          $got->[0] = '0.960952162966354'
#     $expected->[0] = '1'

#   Failed test 'sharp edge should be within blurred edge (1)'
#   at t/5_filter.t line 113.
#     '0'
#         <
#     '0'
# Looks like you failed 5 tests of 10.
t/5_filter.t ....... Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/10 subtests
t/90_MANIFEST.t .... ok
t/91_critic.t ...... skipped: Author test.  Set $ENV{TEST_AUTHOR} to a true value to run.

Test Summary Report
-------------------
t/2_transparent.t (Wstat: 768 Tests: 4 Failed: 3)
  Failed tests:  2-4
  Non-zero exit status: 3
t/5_filter.t     (Wstat: 1280 Tests: 10 Failed: 5)
  Failed tests:  2, 4, 6, 8-9
  Non-zero exit status: 5
Files=7, Tests=63,  5 wallclock secs ( 0.04 usr  0.02 sys +  1.40 cusr  0.71 csys =  2.17 CPU)
Result: FAIL
Failed 2/7 test programs. 8/63 subtests failed.
make: *** [Makefile:885: test_dynamic] Error 255
builder for '/nix/store/5wzvrfsj34ksa3f1v77dma41wirg2ynl-perl5.32.1-Gtk3-ImageView-6.drv' failed with exit code 2
error: build of '/nix/store/5wzvrfsj34ksa3f1v77dma41wirg2ynl-perl5.32.1-Gtk3-ImageView-6.drv' failed

@DarthGandalf
Copy link
Collaborator

Basically, if GetPixel() reads wrong coordinates, it's expected for all the tests to fail. I don't have any good ideas why it is doing that.

Dunno, we can try to find any pattern in how exactly it transforms coordinates.

diff --git a/t/2_transparent.t b/t/2_transparent.t
index 8cf0da7..b6489f9 100644
--- a/t/2_transparent.t
+++ b/t/2_transparent.t
@@ -4,6 +4,7 @@ use File::Temp;
 use Image::Magick;
 use Test::More tests => 4;
 use MIME::Base64;
+use Data::Dumper;
 
 BEGIN {
     use Glib qw/TRUE FALSE/;
@@ -55,6 +56,21 @@ diag( encode_base64( $image->ImageToBlob ) );
 my $x      = $image->Get('width') / 2;
 my $y      = $image->Get('height') / 2;
 my @middle = $image->GetPixel( x => $x, y => $y );
+diag(Dumper($x, $y, \@middle));
+diag($image->Get('base-rows'));
+diag($image->Get('base-columns'));
+diag($image->Get('density'));
+diag($image->Get('x-resolution'));
+diag($image->Get('y-resolution'));
+diag($image->Get('units'));
+diag($image->Get('size'));
+diag($image->Get('sampling-factor'));
+diag($image->Get("pixel[$x,$y]"));
+for (my $yyy = 0; $yyy < 5; ++$yyy) {
+    for (my $xxx = 0; $xxx < 50; ++$xxx) {
+        diag("$xxx,$yyy: ", $image->Get("pixel[$xxx,$yyy]"));
+    }
+}
 is_deeply( \@middle, [ 0, 1, 0 ], 'middle pixel should be green' );
 
 my $found;

To compare this to the encoded picture from your logs

@pacien
Copy link
Author

pacien commented Mar 15, 2021

❯ nix-build -A perlPackages.Gtk3ImageView
these derivations will be built:
  /nix/store/f034m0amlvh967hjzi3rpkcswi8d4vnd-transparent_3.patch.drv
  /nix/store/dj5m1c88gr8qz3cfjbaabdb3x06kpd96-perl5.32.1-Gtk3-ImageView-6.drv
building '/nix/store/f034m0amlvh967hjzi3rpkcswi8d4vnd-transparent_3.patch.drv'...
building '/nix/store/dj5m1c88gr8qz3cfjbaabdb3x06kpd96-perl5.32.1-Gtk3-ImageView-6.drv'...
unpacking sources
unpacking source archive /nix/store/5n6jnidvg2xlmzbj82b6agy4x017kdil-Gtk3-ImageView-6.tar.gz
source root is Gtk3-ImageView-6
setting SOURCE_DATE_EPOCH to timestamp 1605623921 of file Gtk3-ImageView-6/META.yml
patching sources
applying patch /nix/store/w2clyv5fipa76bbnxpx9dswbibbl0spk-837c5ba17f763ee830da880d3affe95635728303.patch
patching file Makefile.PL
patching file lib/Gtk3/ImageView.pm
patching file t/1_basics.t
patching file t/2_transparent.t
patching file t/4_select.t
applying patch /nix/store/rg2y631pfbhxvhisbn4zig1h6rgh4jxj-79c96d95634499375809c7763e840f5499882f19.patch
patching file t/1_basics.t
applying patch /nix/store/7zsmfvlf7r1hadipf9k4qxv29ydf13m5-transparent_3.patch
patching file t/2_transparent.t
configuring
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Gtk3::ImageView
Writing MYMETA.yml and MYMETA.json
no configure script, doing nothing
building
build flags: SHELL=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
cp lib/Gtk3/ImageView/Tool/Dragger.pm blib/lib/Gtk3/ImageView/Tool/Dragger.pm
cp lib/Gtk3/ImageView/Tool/SelectorDragger.pm blib/lib/Gtk3/ImageView/Tool/SelectorDragger.pm
cp lib/Gtk3/ImageView/Tool.pm blib/lib/Gtk3/ImageView/Tool.pm
cp lib/Gtk3/ImageView/Tool/Selector.pm blib/lib/Gtk3/ImageView/Tool/Selector.pm
cp lib/Gtk3/ImageView.pm blib/lib/Gtk3/ImageView.pm
Manifying 1 pod document
running tests
PERL_DL_NONLAZY=1 "/nix/store/192j9y62kp6a5kjw1ylgg1s4w7yxchc5-perl-5.32.1/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_basics.t ....... ok
t/2_transparent.t .. 1/4 # PNG of the shown window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQBAMAAACAGwOrAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAMFBMVEVsbPo+PfzJyPb29fQA
# AP+5uPddXPuamvj/AADwDwDQLwDAPwBwjwBAvwAA/wD///+wij47AAAAAWJLR0QPGLoA2QAAA9VJ
# REFUeNrt2sFpVUEYhuFrBwrBBsQGlBQgWIEiri3CHkxsICUE0oAkNaSDxA6SGtzcnLuZzTmc+b9x
# eGYV3sWFecjqzHd49eZ4Xr/7+HK0djucfT6eT1+XqLUbLFiw4g0WLFjxBgsWrHiDBQtWvMGCBSve
# YMHqhLV8Pn3789vxfNHa7fD+5c/vP5avzlq7HZb/sfPTP57WbrBgwYo3WLBgxRssWLDiDRYsWPEG
# CxaseIMFqzfWh9OYWWu304PFADvz0ZunsBUNFixY8QYLFqx4gwULVrzBggUr3mDBghVvsGB1wlo+
# nw6wMx+92cHbwfdpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4gwWrN9YAO/PRmx38iuYpbEWDBQtW
# vMGCBSveYMGCFW+wYMGKN1iwYMUbLFidsJbPpwPszEdvJTv4XwVnmh18BVbFPWDBggULFixYsGDB
# ggULFixYsGDBgjU9Vsf9eCnW/76Dr8CquEfJU1gFVsU9YMGCBQsWLFiwYMGCBQsWLFiwYMGCNStW
# xX68cbeLm7vN5/aq8YMV90jt4C/vHzefh+vGD868g//993nzefrT+MGKe8CCBQsWLFiwYMGCBQsW
# LFiwYMGCBWt6rNodfD+sCXfwu2NV3CP1FLY7VsU9YMGCBQsWLFiwYMGCBQsWLFiwYMGCNStWxX68
# AqviHqkd/O5YdvArsCruAQsWLFiwYMGCBQsWLFiwYMGCBQsWrOmx7ODt4PdsnsJWNFiwYMGCBQsW
# LFiwYMGCBQsWLFiwYM2KVbEfr8CquIcdvB18n3vAggULFixYsGDBggULFixYsGDBggVreiw7eDv4
# PZunsBUNFixYsGDBggULFixYsGDBggULFixYs2JV7Mcbd7u8f9x8Hq4bP1hxj9QO/uLmbvO5vWr8
# 4Mw7+N1PxT1gwYIFCxYsWLBgwYIFCxYsWLBgwYI1PVbtDr4f1oQ7+N1PxT1ST2G7n4p7wIIFCxYs
# WLBgwYIFCxYsWLBgwYIFa1asiv14BVbFPUp28LO0kqewWRosWLDiDRYsWPEGCxaseIMFC1a8wYIF
# K95gweqN1XE/Pksr2cHP0kqewmZpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4gwWrE9by+bTjfnyW
# ZgdvB9+nwYIFK95gwYIVb7BgwYo3WLBgxRssWLDiDRas3lgD7MxHb3bwK5qnsBUNFixY8QYLFqx4
# gwULVrzBggUr3mDBghVvsGB1wlo+nw6wMx+92cHbwfdpsGDBijdYsGDFGyxYsOINFixY8QYLFqx4
# gwWrN9YAO/PR2z/YV7oN85M6FQAAAABJRU5ErkJggg==
# $VAR1 = 300;
# $VAR2 = 200;
# $VAR3 = [
#           '0',
#           '0',
#           '0.996108949416342'
#         ];
# 400
# 600
# 0x0
# 0
# 0
# undefined units
# undef
# undef
# 0,0,65280,65535
# 0,0: 55296,18136,55296,65535
# 1,0: 63488,18040,62464,65535
# 2,0: 63488,18040,62464,65535
# 3,0: 63488,18040,62464,65535
# 4,0: 63488,18040,62464,65535
# 5,0: 63488,18040,62464,65535
# 6,0: 63488,18040,62464,65535
# 7,0: 63488,18040,62464,65535
# 8,0: 63488,18040,62464,65535
# 9,0: 63488,18040,62464,65535
# 10,0: 63488,18040,62464,65535
# 11,0: 63488,18040,62464,65535
# 12,0: 63488,18040,62464,65535
# 13,0: 63488,18040,62464,65535
# 14,0: 63488,18040,62464,65535
# 15,0: 63488,18040,62464,65535
# 16,0: 63488,18040,62464,65535
# 17,0: 63488,18040,62464,65535
# 18,0: 63488,18040,62464,65535
# 19,0: 55296,18136,55296,65535
# 20,0: 51456,18249,51200,65535
# 21,0: 62976,18294,62720,65535
# 22,0: 62976,18294,62720,65535
# 23,0: 62976,18294,62720,65535
# 24,0: 62976,18294,62720,65535
# 25,0: 62976,18294,62720,65535
# 26,0: 62976,18294,62720,65535
# 27,0: 62976,18294,62720,65535
# 28,0: 62976,18294,62720,65535
# 29,0: 62976,18294,62720,65535
# 30,0: 62976,18294,62720,65535
# 31,0: 62976,18294,62720,65535
# 32,0: 62976,18294,62720,65535
# 33,0: 62976,18294,62720,65535
# 34,0: 62976,18294,62720,65535
# 35,0: 62976,18294,62720,65535
# 36,0: 62976,18294,62720,65535
# 37,0: 62976,18294,62720,65535
# 38,0: 62976,18294,62720,65535
# 39,0: 62976,18294,62720,65535
# 40,0: 55296,18136,55296,65535
# 41,0: 63488,18040,62464,65535
# 42,0: 63488,18040,62464,65535
# 43,0: 63488,18040,62464,65535
# 44,0: 63488,18040,62464,65535
# 45,0: 63488,18040,62464,65535
# 46,0: 63488,18040,62464,65535
# 47,0: 63488,18040,62464,65535
# 48,0: 63488,18040,62464,65535
# 49,0: 63488,18040,62464,65535
# 0,1: 63488,18040,62464,65535
# 1,1: 0,0,0,65535
# 2,1: 0,0,0,65535
# 3,1: 0,0,0,65535
# 4,1: 0,0,0,65535
# 5,1: 0,0,0,65535
# 6,1: 0,0,0,65535
# 7,1: 0,0,0,65535
# 8,1: 0,0,0,65535
# 9,1: 0,0,0,65535
# 10,1: 0,0,0,65535
# 11,1: 0,0,0,65535
# 12,1: 0,0,0,65535
# 13,1: 0,0,0,65535
# 14,1: 0,0,0,65535
# 15,1: 0,0,0,65535
# 16,1: 0,0,0,65535
# 17,1: 0,0,0,65535
# 18,1: 0,0,0,65535
# 19,1: 63488,18040,62464,65535
# 20,1: 47360,18233,47104,65535
# 21,1: 62976,18294,62720,65535
# 22,1: 62976,18294,62720,65535
# 23,1: 62976,18294,62720,65535
# 24,1: 62976,18294,62720,65535
# 25,1: 62976,18294,62720,65535
# 26,1: 62976,18294,62720,65535
# 27,1: 62976,18294,62720,65535
# 28,1: 62976,18294,62720,65535
# 29,1: 62976,18294,62720,65535
# 30,1: 62976,18294,62720,65535
# 31,1: 62976,18294,62720,65535
# 32,1: 62976,18294,62720,65535
# 33,1: 62976,18294,62720,65535
# 34,1: 62976,18294,62720,65535
# 35,1: 62976,18294,62720,65535
# 36,1: 62976,18294,62720,65535
# 37,1: 62976,18294,62720,65535
# 38,1: 62976,18294,62720,65535
# 39,1: 62976,18294,62720,65535
# 40,1: 63488,18040,62464,65535
# 41,1: 0,0,0,65535
# 42,1: 0,0,0,65535
# 43,1: 0,0,0,65535
# 44,1: 0,0,0,65535
# 45,1: 0,0,0,65535
# 46,1: 0,0,0,65535
# 47,1: 0,0,0,65535
# 48,1: 0,0,0,65535
# 49,1: 0,0,0,65535
# 0,2: 63488,18040,62464,65535
# 1,2: 0,0,0,65535
# 2,2: 0,0,0,65535
# 3,2: 0,0,0,65535
# 4,2: 0,0,0,65535
# 5,2: 0,0,0,65535
# 6,2: 0,0,0,65535
# 7,2: 0,0,0,65535
# 8,2: 0,0,0,65535
# 9,2: 0,0,0,65535
# 10,2: 0,0,0,65535
# 11,2: 0,0,0,65535
# 12,2: 0,0,0,65535
# 13,2: 0,0,0,65535
# 14,2: 0,0,0,65535
# 15,2: 0,0,0,65535
# 16,2: 0,0,0,65535
# 17,2: 0,0,0,65535
# 18,2: 0,0,0,65535
# 19,2: 63488,18040,62464,65535
# 20,2: 47360,18233,47104,65535
# 21,2: 62976,18294,62720,65535
# 22,2: 62976,18294,62720,65535
# 23,2: 62976,18294,62720,65535
# 24,2: 62976,18294,62720,65535
# 25,2: 62976,18294,62720,65535
# 26,2: 62976,18294,62720,65535
# 27,2: 62976,18294,62720,65535
# 28,2: 62976,18294,62720,65535
# 29,2: 62976,18294,62720,65535
# 30,2: 62976,18294,62720,65535
# 31,2: 62976,18294,62720,65535
# 32,2: 62976,18294,62720,65535
# 33,2: 62976,18294,62720,65535
# 34,2: 62976,18294,62720,65535
# 35,2: 62976,18294,62720,65535
# 36,2: 62976,18294,62720,65535
# 37,2: 62976,18294,62720,65535
# 38,2: 62976,18294,62720,65535
# 39,2: 62976,18294,62720,65535
# 40,2: 63488,18040,62464,65535
# 41,2: 0,0,0,65535
# 42,2: 0,0,0,65535
# 43,2: 0,0,0,65535
# 44,2: 0,0,0,65535
# 45,2: 0,0,0,65535
# 46,2: 0,0,0,65535
# 47,2: 0,0,0,65535
# 48,2: 0,0,0,65535
# 49,2: 0,0,0,65535
# 0,3: 63488,18040,62464,65535
# 1,3: 0,0,0,65535
# 2,3: 0,0,0,65535
# 3,3: 0,0,0,65535
# 4,3: 0,0,0,65535
# 5,3: 0,0,0,65535
# 6,3: 0,0,0,65535
# 7,3: 0,0,0,65535
# 8,3: 0,0,0,65535
# 9,3: 0,0,0,65535
# 10,3: 0,0,0,65535
# 11,3: 0,0,0,65535
# 12,3: 0,0,0,65535
# 13,3: 0,0,0,65535
# 14,3: 0,0,0,65535
# 15,3: 0,0,0,65535
# 16,3: 0,0,0,65535
# 17,3: 0,0,0,65535
# 18,3: 0,0,0,65535
# 19,3: 63488,18040,62464,65535
# 20,3: 47360,18233,47104,65535
# 21,3: 62976,18294,62720,65535
# 22,3: 62976,18294,62720,65535
# 23,3: 62976,18294,62720,65535
# 24,3: 62976,18294,62720,65535
# 25,3: 62976,18294,62720,65535
# 26,3: 62976,18294,62720,65535
# 27,3: 62976,18294,62720,65535
# 28,3: 62976,18294,62720,65535
# 29,3: 62976,18294,62720,65535
# 30,3: 62976,18294,62720,65535
# 31,3: 62976,18294,62720,65535
# 32,3: 62976,18294,62720,65535
# 33,3: 62976,18294,62720,65535
# 34,3: 62976,18294,62720,65535
# 35,3: 62976,18294,62720,65535
# 36,3: 62976,18294,62720,65535
# 37,3: 62976,18294,62720,65535
# 38,3: 62976,18294,62720,65535
# 39,3: 62976,18294,62720,65535
# 40,3: 63488,18040,62464,65535
# 41,3: 0,0,0,65535
# 42,3: 0,0,0,65535
# 43,3: 0,0,0,65535
# 44,3: 0,0,0,65535
# 45,3: 0,0,0,65535
# 46,3: 0,0,0,65535
# 47,3: 0,0,0,65535
# 48,3: 0,0,0,65535
# 49,3: 0,0,0,65535
# 0,4: 63488,18040,62464,65535
# 1,4: 0,0,0,65535
# 2,4: 0,0,0,65535
# 3,4: 0,0,0,65535
# 4,4: 0,0,0,65535
# 5,4: 0,0,0,65535
# 6,4: 0,0,0,65535
# 7,4: 0,0,0,65535
# 8,4: 0,0,0,65535
# 9,4: 0,0,0,65535
# 10,4: 0,0,0,65535
# 11,4: 0,0,0,65535
# 12,4: 0,0,0,65535
# 13,4: 0,0,0,65535
# 14,4: 0,0,0,65535
# 15,4: 0,0,0,65535
# 16,4: 0,0,0,65535
# 17,4: 0,0,0,65535
# 18,4: 0,0,0,65535
# 19,4: 63488,18040,62464,65535
# 20,4: 47360,18233,47104,65535
# 21,4: 62976,18294,62720,65535
# 22,4: 62976,18294,62720,65535
# 23,4: 62976,18294,62720,65535
# 24,4: 62976,18294,62720,65535
# 25,4: 62976,18294,62720,65535
# 26,4: 62976,18294,62720,65535
# 27,4: 62976,18294,62720,65535
# 28,4: 62976,18294,62720,65535
# 29,4: 62976,18294,62720,65535
# 30,4: 62976,18294,62720,65535
# 31,4: 62976,18294,62720,65535
# 32,4: 62976,18294,62720,65535
# 33,4: 62976,18294,62720,65535
# 34,4: 62976,18294,62720,65535
# 35,4: 62976,18294,62720,65535
# 36,4: 62976,18294,62720,65535
# 37,4: 62976,18294,62720,65535
# 38,4: 62976,18294,62720,65535
# 39,4: 62976,18294,62720,65535
# 40,4: 63488,18040,62464,65535
# 41,4: 0,0,0,65535
# 42,4: 0,0,0,65535
# 43,4: 0,0,0,65535
# 44,4: 0,0,0,65535
# 45,4: 0,0,0,65535
# 46,4: 0,0,0,65535
# 47,4: 0,0,0,65535
# 48,4: 0,0,0,65535
# 49,4: 0,0,0,65535
t/2_transparent.t .. 2/4
#   Failed test 'middle pixel should be green'
#   at t/2_transparent.t line 74.
#     Structures begin differing at:
#          $got->[1] = '0'
#     $expected->[1] = '1'

#   Failed test 'there is red background'
#   at t/2_transparent.t line 87.
#          got: '0'
#     expected: '1'

#   Failed test 'there is blue outside'
#   at t/2_transparent.t line 104.
#          got: '0'
#     expected: '1'
# Looks like you failed 3 tests of 4.
t/2_transparent.t .. Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/4 subtests
t/3_zoom.t ......... ok
t/4_select.t ....... ok
t/5_filter.t ....... 1/10 # PNG of the blurred window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAQ
# 6ElEQVR42u3dWW/jSJaA0RtctDld1T3//z/Wkl4kUWTMQ8gqT6a60Y3JgqS854AQKFc+BGDYny+D
# VJW315cAgKy6Wy8AAG5JCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgB
# SE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFI
# TQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhN
# CAFITQgBSG249QL47yxL1PpvjlIjao2ot14o/JRKlBIlopRa2vm/PngUQvhIluWvY55jqaVezj9/
# fYllufVa4WfUdeej78un8yhddKW28/ZFIXwgQvhIaj2n7jSXZY55jnmO0+nyWuYl5jnmU8zzrdcK
# P6O+j76Pro+hj76vw3D+St/HMJSuj1pr36vggxHCR9JCeJrLfIppitP5tUyn+PSVcjrFdLr1WuFn
# NPQxjjEMdRxjGMowtq/UYYhliWGIGEsptdqbeChC+EhqjXmOZY5pimmK4zGmqXw+P05xmuJ4jOPR
# X6Tw441jXa1iGMtqPJ+PY8xLWS3n+HVdLCWE8LEI4SOpNZZa2oXQ4zEOxzId43CIw6EcjvH5/Hi4
# 9VrhZzSuynoV63Vdr2NclfUU63VdlliWUmstJbouSleWRQkfiRA+klqjLjGfJ8IyHWO/j/2+HI6x
# f4/DoewPcdjHfl/2Qgh/g/Uqttt6nMo0xWbzVwIjoutK19VhiGExET4YIXwk5z3CU5xOZZricIj9
# vuz38f4e7+/lfR/79/Le3r65NAo/3npTD8eyWce0q9OpzHNd5ogoEbXroiul7Re2x5ncMvMohPCR
# tD3CeY7pFNN0vgraKvj2Fm9v5e093t/K21u8CiH8DXZTzKc47eqylLrUcwL76LoyjrUfzs8vmQgf
# ixA+kstEOJ/3CGP/UcGXl/L6Fm+v5fUtXl/Ky+ut1wo/o+OhTFOdpjLPdVlKRI0oXVe7rt1NGqeT
# ED4eIXwkH88Rlsse4eFQ3vfx9nau4NeXeH0pX1/i5auJEH6806kuS5nnj1mwK6Wr41CGoR7HslrV
# eS7zXJdafLzTAxHCR1JrWZaYlzid4tj2CA+xfy9v7+cKfv2zfH0pX/+MP/4UQvjxpum8PfFpFizD
# UIehrNZ1muLk0ugDEsJHUuNjj3Aqp7ZHuI/3fby/na+IXir4xx+3Xiv8jC6XQ/s+uq6OYxmGul7H
# YYztFKdTWea6LKbBByOEj+R8afR0eY4w9vvy/h5v5wpGq+Dvv8dvv5kI4cf7+PDC2nWllGg3yKxX
# ZVzV4zGm0/kjD02Ej0UIH8rHZ41Opzgey/EQ+0MbB8vLa7x8LW0W/O23IoTwd1iWWkqJiL6vfR/j
# qoxDbDZ1c4jjsUxTnee/nizkUfj/EQKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApDacOsFwGe1i6VE/U+OWy+VK2qU//yIKLde
# L0QIIXeli+Vy9DH/+/NbL5YrlujaMUf/78+rCnI3hJA7UqK21A1x6mNuRzv//iu3XixXzNG34xTD
# 5fXzV0rUOXoV5K4IIXekhXCI0xCnMaZ//3rrxXLFKYYpxquvXSynGCKiRnFlm7sihNyRErXNfGNM
# Y0yrOP6r11Ucb71YrphiPMbqm9c+5mOsWvzadVEh5K4IIXfk86XRVRzXcWiv7fh8vo7DrRfLFcdY
# HWLdjst529MtUWuUFkJbvNwVIeSOXEJ4mQg3sd/Efh2Hbbyv49DetuPWi+WKQ6zfY9sG931sLgmM
# j1mwXSM1EXJXhJA78nmPsM1/m9hv4/37Yxdvt14sV+xjs47DPjbtT5l2obv9pxbCtl/YHoBxywx3
# Qgi5I9/sEbZLoK18T/G6i7fL8RSvt14sV7zFrv0d8/kRl/bIREtge/rFRMhdEULuyPcT4aWCX+Ll
# KV7b8SVevsTLrRfLFes4XGbBSwg/z4KtkULIXRFC7sj3e4SthW0EfIrX5/j6JV6e4+tzfL31Yrmi
# de7q5dBjrI6xahO/m2W4K0LIHfn+rtG2R9hC+Bxff4k/2+uv8cetF8sVV/cFTzGcYjjEuj0DaiLk
# 3gghd+T7PcLPIWyzYKvgP+L3Wy+WK67uC7ZHKVoF7RFyh4SQO/Kv7hrdxdvnCv4zfvtn/HbrxXLF
# 51mwRvkcwvZMRWuhEHJXhJA78nmP8BLCz+NgmwX/Gb/9jxDepS6W9lBE+3zR9sky+9jsY9NCaCLk
# Dvn/EQKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApDacOsFwF9qlCW6OfpTDFOMx1gdYr2PzVvs1nEY
# 4jTG1MXSx9zFcuvFcsUf8euf8cvXeH6JL6/x9Ba799geYn2M1RTjKYY5+iW6GuXWK4W/CCF35BLC
# SwXfY/tNAi//8taL5Yo/45ff4x+XFrYQvsd2H5tLC4WQeyOE3JFvJsJDrFdx3MemhbCP+RJC7tPX
# eP4zfnmJL99PhMdYtYlwjl4IuStCyB2pUb65LjrG9M0s2K6tzdHferFc8RJf2iz4r66OujTKHRJC
# 7sj3e4T72LQQXjYF269RIbxPr/HU+ne5LrqPzSHWh1hPMbo0yn0SQu5IC+HnifDzLLhEt0TXfp8e
# Y3XrxXLFW+za8RpP77G9OhG2ofDWK4W/CCF35Ps9wu9DeIqh/ddbL5Yr2q0x77F9i1273ffzRNi+
# dyZC7o0QckfaNc9212h7RqJEjY99wfabtP1W3cfm1ovlinaj7zevrYWfJ8IaRQu5H0LIHfk8ER5j
# 9Xlf8DILtvsPhfA+tW9Nu6z9+fh816iJkHsjhNyRyx5hmwVL1G/2Bdt9pKs4ruJ468VyRfs2taOd
# f/MVl0a5Q0LIHfk8EV7efp4Fx5jaM4VjTLdeLFe07dv2erlN9POrm2W4Q0LIHWl7hG1f8JLAtl84
# xOmb11svlivaHzGtdu3k+7cmQu6NEHJHLhPhZRbsYmlXSi8fMeqzRu9Z+661me9y8s1bIeTeCCF3
# pPWvRmkbhJedwqtvb71Yrmi3g16O9t28+vbWK4W/CCF35OqvSM17dLLHnRNC7sqV35h+jQJ/K/du
# AZCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhAC
# kJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQ
# mhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCa
# EAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQApCaEAKQmhACkJoQ
# ApCaEAKQ2nDrBfDfKNF10fcx9DGOdVyV9SrWm7qb4ngop1OdpliWMs+xLPXWa4Wf0K+/xvNzfX6u
# T1/iaRe7Xd1uY72KcRXjWIch+j66rpZy64Xy3xDCR1I+QjiOsVrFehXbbT0cy3yKaaotgRE1Ioof
# RPgbPD/Xf/xan3+J5y/16UvdbWOzrdtt3axjtYpxiGGIrgs/f49FCB9Jiei66PoYhjqMZb2ux6ls
# 1nHa1Wkq81znuf0r4yD8LZ6f6/Mv8eWpPn2pT7vY7up2E6tWwVUMQ+366PsIIXwoQvhISql9X4Y2
# EY6xXsc0xbRrs2BtCez76LrS91oIP97Tl/Ms+PwlWgt3u7rdxHpdV2OMY/SdifDxCOEj+bg0Woeh
# tD3CzaZOp1KXuixtECxtf6Lvb71W+Bk97c79e/pSd7vYbuu6VXAd41jHMYahdp2B8MEI4SNpIRyG
# GNoe4RTLEpdZsOtK19VxPDfy1ouFn9BuV3fb2O7q0y6227p7it022v0yq1UMY/T9+X6ZW6+U/4IQ
# PpLyf+4ajfW6LktZzjfIlNLVrivDUPshRt9Y+Bts290xm9jt6noTu21sNnW1jvW6jmMMvZtlHpLf
# l4+kXfPs+xjHOi9lWaLWGlG6PrqujkMZhrpex3pVNht/kMKP127VXq2j7Qtut7Fax2Zd1+vzExTt
# J7QULXwkQvhISonSJsIhVud9wfi4KBrDUIehHMYYV3VzuPVa4Wc0rqI9KdH2BderWH9UcPXxHGEx
# ET4aIXwkpURX6jC0WTBqPSew7dIfx7Ja1+0Ux2Mcj34Q4ccbx9qelFiNH+fjuYLtfBiiMw4+GiF8
# JG2PsOtjGC5va1dKP8QwxGpVpylOpzKdYppcGoUfbxjaU/N1HGMcYxjPH/M0DB8V7KPva+fDKx+K
# ED6StkdYa42xdN35DtJxrPMcp1PMcznNscz1dIp5vvVa4WfUNia6PvouhqG2t21fsH196KubZR6O
# ED6Sy12jpdSlROnKsMQwxLKcn6P4OImP7UPgR+q62n4G21+i7aTtC3blPAsK4cMRwkfSQlhK2yCM
# Zant5Py2llojzm9dGoUf73w7aIlS2kce1vaVdrQfT7eMPhwhfCRXf8A+JU/84AZk79EJ4cPzQwjw
# /+HeJgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IA
# UhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBS
# E0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUhNCAFITQgBSE0IAUvtf22iy
# givXrz4AAAAASUVORK5CYII=
t/5_filter.t ....... 2/10
#   Failed test 'middle pixel should be red'
#   at t/5_filter.t line 48.
#     Structures begin differing at:
#          $got->[0] = '0.996108949416342'
#     $expected->[0] = '1'

#   Failed test 'there is blue outside'
#   at t/5_filter.t line 74.
#          got: '0'
#     expected: '1'
# PNG of the crisp window:
# iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQAgMAAAAPW/YLAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
# AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADFBMVEX29fQAAP//AAD///8J
# JlxBAAAAAWJLR0QDEQxM8gAAAOtJREFUeNrtztEJABAUAEA/9vNjCZsxpQ0kSV7dTXApAQAAAAAA
# APBKrtcULS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0trVitNjZ0LS0t
# LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
# LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS2tGK1TWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpa
# WlpaWlpaWlpaWlpaWlpaWj+3AAAAAAAAAFib21NvT2Keb5cAAAAASUVORK5CYII=
t/5_filter.t ....... 6/10
#   Failed test 'blue pixel should still be blue'
#   at t/5_filter.t line 95.
#     Structures begin differing at:
#          $got->[0] = '0.960952162966354'
#     $expected->[0] = '0'

#   Failed test 'red pixel should be immediatelly near blue one'
#   at t/5_filter.t line 107.
#     Structures begin differing at:
#          $got->[0] = '0.960952162966354'
#     $expected->[0] = '1'

#   Failed test 'sharp edge should be within blurred edge (1)'
#   at t/5_filter.t line 113.
#     '0'
#         <
#     '0'
# Looks like you failed 5 tests of 10.
t/5_filter.t ....... Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/10 subtests
t/90_MANIFEST.t .... ok
t/91_critic.t ...... skipped: Author test.  Set $ENV{TEST_AUTHOR} to a true value to run.

Test Summary Report
-------------------
t/2_transparent.t (Wstat: 768 Tests: 4 Failed: 3)
  Failed tests:  2-4
  Non-zero exit status: 3
t/5_filter.t     (Wstat: 1280 Tests: 10 Failed: 5)
  Failed tests:  2, 4, 6, 8-9
  Non-zero exit status: 5
Files=7, Tests=63,  5 wallclock secs ( 0.03 usr  0.03 sys +  1.45 cusr  0.72 csys =  2.23 CPU)
Result: FAIL
Failed 2/7 test programs. 8/63 subtests failed.
make: *** [Makefile:885: test_dynamic] Error 255
builder for '/nix/store/dj5m1c88gr8qz3cfjbaabdb3x06kpd96-perl5.32.1-Gtk3-ImageView-6.drv' failed with exit code 2
error: build of '/nix/store/dj5m1c88gr8qz3cfjbaabdb3x06kpd96-perl5.32.1-Gtk3-ImageView-6.drv' failed

@DarthGandalf
Copy link
Collaborator

Thanks for patience

Okay, those things it found in the left top corner of the image do look like cells. Except that their color is completely wrong: black and purple-ish?

I think at this point it'll be more productive to test PerlMagick on the image directly, without running Gtk-ImageView tests every time.

This is the picture from your log of 2_transparent.t:

green4

Here's a code to read it:

use strict;
use warnings;

use Image::Magick;
use Data::Dumper;

my $image = Image::Magick->new(magick=>'png');
$image->Read('image.png');
my @pixel = $image->GetPixel(x=>300, y=>200);
print Dumper(\@pixel);

If it doesn't show green [0, 1, 0], it's a bug in imagemagick.

@pacien
Copy link
Author

pacien commented Mar 15, 2021

Script output:

❯ ./test.perl
$VAR1 = [
          '0',
          '0',
          '0.996108949416342'
        ];

Which indeed hints at a bug in imagemagick, but calling it directly from the CLI gives the correct result:

convert image.png -crop 1x1+300+200 txt:-
# ImageMagick pixel enumeration: 1,1,255,srgb
0,0: (0,255,0)  #00FF00  lime

So it might be a bug in PerlMagick or Imagemagick indeed :/

@pacien
Copy link
Author

pacien commented Mar 15, 2021

Issue reported to the imagemagick project at ImageMagick/ImageMagick#3402.

@pacien
Copy link
Author

pacien commented Mar 18, 2021

This is solved by enabling HDRI support when building PerlMagick.
See ImageMagick/ImageMagick#3402 (comment).

@pacien pacien closed this as completed Mar 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants