The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Imager::Test - common functions used in testing Imager

SYNOPSIS

  use Imager::Test 'diff_text_with_nul';
  diff_text_with_nul($test_name, $text1, $text2, @string_options);

DESCRIPTION

This is a repository of functions used in testing Imager.

Some functions will only be useful in testing Imager itself, while others should be useful in testing modules that use Imager.

No functions are exported by default.

FUNCTIONS

is_color3($color, $red, $blue, $green, $comment)

Tests is $color matches the given ($red, $blue, $green)

is_image($im1, $im2, $comment)

Tests if the 2 images have the same content. Both images must be defined, have the same width, height, channels and the same color in each pixel. The color comparison is done at 8-bits per pixel. The color representation such as direct vs paletted, bits per sample are not checked. Equivalent to is_image_similar($im1, $im2, 0, $comment).

is_image_similar($im1, $im2, $maxdiff, $comment)

Tests if the 2 images have similar content. Both images must be defined, have the same width, height and channels. The cum of the squares of the differences of each sample are calculated and must be less than or equal to $maxdiff for the test to pass. The color comparison is done at 8-bits per pixel. The color representation such as direct vs paletted, bits per sample are not checked.

test_image_raw()

Returns a 150x150x3 Imager::ImgRaw test image.

test_image()

Returns a 150x150x3 8-bit/sample OO test image.

test_image_16()

Returns a 150x150x3 16-bit/sample OO test image.

test_image_double()

Returns a 150x150x3 double/sample OO test image.

diff_text_with_nul($test_name, $text1, $text2, @options)

Creates 2 test images and writes $text1 to the first image and $text2 to the second image with the string() method. Each call adds 3 ok/not ok to the output of the test script.

Extra options that should be supplied include the font and either a color or channel parameter.

This was explicitly created for regression tests on #21770.

image_bounds_checks($im)

Attempts to write to various pixel positions outside the edge of the image to ensure that it fails in those locations.

Any new image type should pass these tests. Does 16 separate tests.

test_colorf_gpix($im, $x, $y, $expected, $epsilon, $comment)

Retrieves the pixel ($x,$y) from the low-level image $im and compares it to the floating point color $expected, with a tolerance of epsilon.

test_color_gpix($im, $x, $y, $expected, $comment)

Retrieves the pixel ($x,$y) from the low-level image $im and compares it to the floating point color $expected.

test_colorf_glin($im, $x, $y, $pels, $comment)

Retrieves the floating point pixels ($x, $y)-[$x+@$pels, $y] from the low level image $im and compares them against @$pels.

mask_tests($im, $epsilon)

Perform a standard set of mask tests on the OO image $im.

AUTHOR

Tony Cook <tony@develop-help.com>