1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
--TEST--
ImagickKernel::fromMatrix exceptions
--SKIPIF--
<?php
$imageMagickRequiredVersion = 0x680;
require_once(dirname(__FILE__) . '/skipif.inc');
?>
--FILE--
<?php
$kernelArray = array(
array(1, 0, -1),
array(1, 0, -1),
array(1, 0, -1),
);
$validOrigins = [
[0, 0],
[2, 0],
[0, 2],
[2, 2],
[1, 2]
];
$invalidOrigins = [
[-1, 0],
[3, 0],
[0, 3],
[3, 3],
[1, PHP_INT_MAX - 10],
];
foreach ($validOrigins as $validOrigin) {
try {
$kernel = ImagickKernel::fromMatrix($kernelArray, $validOrigin);
}
catch (\Exception $e) {
echo "unexpected exception: " . $e->getMessage();
}
}
foreach ($invalidOrigins as $invalidOrigin) {
try {
$kernel = ImagickKernel::fromMatrix($kernelArray, $invalidOrigin);
echo "Exception wasn't thrown for case: \n";
var_dump($invalidOrigin);
}
catch (\ImagickKernelException $e) {
$message = $e->getMessage();
if (strpos($message, "origin_y for matrix is outside bounds of rows") === 0) {
// this is fine.
}
else if (strpos($message, "origin_x for matrix is outside bounds of columns") === 0) {
// this is fine.
}
else {
echo "Unexpected message: " . $message . "\n";
}
}
}
$flatKernelArray = array(
array(1, 0, -2, 0, 1),
);
try {
$kernel = ImagickKernel::fromMatrix($flatKernelArray, [1, 4]);
echo "Exception wasn't thrown for case: \n";
var_dump($invalidOrigin);
}
catch (\ImagickKernelException $e) {
$message = $e->getMessage();
if (strpos($message, "origin_y for matrix is outside bounds of rows") === 0) {
// this is fine.
}
else {
echo "Unexpected message: " . $message . "\n";
}
}
$tallKernelArray = array(
array(1),
array(0),
array(-2),
array(0),
array(1),
);
try {
$kernel = ImagickKernel::fromMatrix($tallKernelArray, [4, 1]);
echo "Exception wasn't thrown for case: \n";
var_dump($invalidOrigin);
}
catch (\ImagickKernelException $e) {
$message = $e->getMessage();
if (strpos($message, "origin_x for matrix is outside bounds of columns") === 0) {
// this is fine.
}
else {
echo "Unexpected message: " . $message . "\n";
}
}
echo "Complete".PHP_EOL;
?>
--EXPECTF--
Complete
|