carygravel / gtk3-imageview

2 stars 3 forks source link

Tests fail with PerlMagick and ImageMagick 7 #19

Closed pacien closed 3 years ago

pacien commented 3 years ago

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

Some failures are similar to those in https://github.com/carygravel/gtk3-imageview/issues/18#issuecomment-749825421, 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 commented 3 years ago

Works for me with ImageMagick 7...

pacien commented 3 years ago

Strange... The versions might be differing?

My versions are:

DarthGandalf commented 3 years ago

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

DarthGandalf commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago
❯ 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 commented 3 years ago

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 commented 3 years ago

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 commented 3 years ago

Issue reported to the imagemagick project at https://github.com/ImageMagick/ImageMagick/issues/3402.

pacien commented 3 years ago

This is solved by enabling HDRI support when building PerlMagick. See https://github.com/ImageMagick/ImageMagick/issues/3402#issuecomment-801195538.