public function testConvertToPaletteImage()
{
$image = imagecreatetruecolor(100, 100);
// Whole image black
imagefill($image, 0, 0, imagecolorallocatealpha($image, 0, 0, 0, 0));
// Bottom right 25% transparent
imagealphablending($image, false);
imagefilledrectangle($image, 50, 50, 100, 100, imagecolorallocatealpha($image, 0, 0, 0, 127));
$image = new GdImage($image);
$image->convertToPaletteImage();
$this->assertInternalType('resource', $image->getResource());
$this->assertFalse(imageistruecolor($image->getResource()));
$this->assertEquals(['red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => 0], imagecolorsforindex($image->getResource(), imagecolorat($image->getResource(), 0, 0)), 'Left top pixel should be black');
$this->assertEquals(127, imagecolorsforindex($image->getResource(), imagecolorat($image->getResource(), 75, 75))['alpha'], 'Bottom right quater should be transparent');
}