Files
2026-02-10 22:11:06 -05:00

96 lines
2.8 KiB
PHP

<?php
use Mike42\GfxPhp\BlackAndWhiteRasterImage;
use PHPUnit\Framework\TestCase;
/*
* Many of these tests use an example image like this-
*╭────╮
*│████│ ██ = 1
*│░░██│ ░░ = 0
*╰────╯
*/
class BlackAndWhiteRasterImageTest extends TestCase
{
protected function createBlackAndWhiteTestImage() {
$image = BlackAndWhiteRasterImage::create(2, 2);
$image -> setPixel(0, 0, 1);
$image -> setPixel(1, 0, 1);
$image -> setPixel(0, 1, 0);
$image -> setPixel(1, 1, 1);
return $image;
}
public function testCreate()
{
$img = $this -> createBlackAndWhiteTestImage();
$this -> assertEquals("▀█\n", $img -> toString());
}
public function testInvert() {
$img = $this -> createBlackAndWhiteTestImage();
$img -> invert();
$this -> assertEquals("\n", $img -> toString());
}
public function testToRgb()
{
$img = $this -> createBlackAndWhiteTestImage() -> toRgb() -> toBlackAndWhite();
$this -> assertEquals("▀█\n", $img -> toString());
}
public function testToIndexed()
{
$img = $this -> createBlackAndWhiteTestImage() -> toIndexed() -> toBlackAndWhite();
$this -> assertEquals("▀█\n", $img -> toString());
}
public function testToGrayscale()
{
$img = $this -> createBlackAndWhiteTestImage() -> toGrayscale() -> toBlackAndWhite();
$this -> assertEquals("▀█\n", $img -> toString());
}
public function testClear()
{
$img = $this -> createBlackAndWhiteTestImage();
$img -> clear();
$this -> assertEquals(" \n", $img -> toString());
}
public function testScale()
{
$img = $this -> createBlackAndWhiteTestImage() -> scale(4, 2);
$this -> assertEquals("▀▀██\n", $img -> toString());
}
public function testRectEmpty()
{
$img = BlackAndWhiteRasterImage::create(5, 5);
$img -> rect(1, 1, 3, 3);
$expected = " ▄▄▄ \n" .
" █▄█ \n" .
" \n";
$this -> assertEquals($expected, $img -> toString());
}
public function testSubImageEmpty()
{
$img = BlackAndWhiteRasterImage::create(5, 5);
$img -> rect(1, 1, 3, 3);
$img = $img -> subImage(1, 1, 3, 3);
$expected = "█▀█\n" .
"▀▀▀\n";
$this -> assertEquals($expected, $img -> toString());
}
public function testRectFilled()
{
$img = BlackAndWhiteRasterImage::create(5, 5);
$img -> rect(1, 1, 3, 3, true);
$expected = " ▄▄▄ \n" .
" ███ \n" .
" \n";
$this -> assertEquals($expected, $img -> toString());
}
}