HEX
Server: LiteSpeed
System: Linux cluster02.load-balancer.x2.network 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: kbdhpghp (1098)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/php74/usr/share/pear/test/imagick/tests/287_Imagick_GetImageChannelRange_basic.phpt
--TEST--
Test Imagick, GetImageChannelRange basic
--SKIPIF--
<?php
require_once(dirname(__FILE__) . '/skipif.inc');
?>
--XFAIL--
Tests are not stable across ImageMagick versions.
--FILE--
<?php

$imagick = new \Imagick();
$imagick->newPseudoImage(640, 480, "gradient:rgb(0,32,32)-rgb(128,255,255)");

$redChannelRange = $imagick->getImageChannelRange(\Imagick::CHANNEL_RED);
$greenChannelRange = $imagick->getImageChannelRange(\Imagick::CHANNEL_GREEN);

$expectedRedMinima = (Imagick::getQuantum() * 0.0) / 255;
$expectedRedMaxima = (Imagick::getQuantum() * 128.0) / 255;

$expectedGreenMinima = (Imagick::getQuantum() * 32.0) / 255;
$expectedGreenMaxima = (Imagick::getQuantum() * 255.0) / 255;

// Floating point math. This is absolutely going to blow up
// on some platforms. But as finding out which would be interesting
// will leave it like this for now.
if ($expectedRedMinima !== $redChannelRange['minima']) {
	printf(
		"Unexpected red minima. Was expecting %s but have %s\n",
		$expectedRedMinima,
		$redChannelRange['minima']
	);
}
if ($expectedRedMaxima !== $redChannelRange['maxima']) {
	printf(
		"Unexpected red maxima. Was expecting %s but have %s\n",
		$expectedRedMinima,
		$redChannelRange['maxima']
	);
}


if ($expectedGreenMinima !== $greenChannelRange['minima']) {
	printf(
		"Unexpected green minima. Was expecting %s but have %s\n",
		$expectedGreenMinima,
		$greenChannelRange['minima']
	);
}
if ($expectedGreenMaxima !== $greenChannelRange['maxima']) {
	printf(
		"Unexpected green maxima. Was expecting %s but have %s\n",
		$expectedGreenMaxima,
		$greenChannelRange['maxima']
	);
}

echo "Ok";
?>
--EXPECTF--
Ok