recreate project

This commit is contained in:
root
2026-02-10 22:11:06 -05:00
commit 663c0cdbda
10149 changed files with 1379710 additions and 0 deletions
+618
View File
@@ -0,0 +1,618 @@
<?php
use Mike42\GfxPhp\Image;
use PHPUnit\Framework\TestCase;
/**
* Simple check that files in the BMP Suite can be read, and have the expected dimensions.
*/
class BmpsuiteTest extends TestCase
{
function loadImage(string $filename)
{
return Image::fromFile(__DIR__ . "/../resources/bmpsuite/$filename");
}
function test_badbitcount()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badbitcount.bmp");
}
function test_badbitssize()
{
$img = $this -> loadImage("b/badbitssize.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_baddens1()
{
$img = $this -> loadImage("b/baddens1.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_baddens2()
{
$img = $this -> loadImage("b/baddens2.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_badfilesize()
{
$img = $this -> loadImage("b/badfilesize.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_badheadersize()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badheadersize.bmp");
}
function test_badpalettesize()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badpalettesize.bmp");
}
function test_badplanes()
{
$img = $this -> loadImage("b/badplanes.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_badrle()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badrle.bmp");
}
function test_badrle4()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badrle4.bmp");
}
function test_badrle4bis()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badrle4bis.bmp");
}
function test_badrle4ter()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badrle4ter.bmp");
}
function test_badrlebis()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badrlebis.bmp");
}
function test_badrleter()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badrleter.bmp");
}
function test_badwidth()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/badwidth.bmp");
}
function test_pal8badindex()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/pal8badindex.bmp");
}
function test_reallybig()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/reallybig.bmp");
}
function test_rgb16_880()
{
$img = $this -> loadImage("b/rgb16-880.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rletopdown()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/rletopdown.bmp");
}
function test_shortfile()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("b/shortfile.bmp");
}
function test_pal1()
{
$img = $this -> loadImage("g/pal1.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal1bg()
{
$img = $this -> loadImage("g/pal1bg.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal1wb()
{
$img = $this -> loadImage("g/pal1wb.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal4()
{
$img = $this -> loadImage("g/pal4.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal4gs()
{
$img = $this -> loadImage("g/pal4gs.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal4rle()
{
$img = $this -> loadImage("g/pal4rle.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8_0()
{
$img = $this -> loadImage("g/pal8-0.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8()
{
$img = $this -> loadImage("g/pal8.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8gs()
{
$img = $this -> loadImage("g/pal8gs.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8nonsquare()
{
$img = $this -> loadImage("g/pal8nonsquare.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(32, $img -> getHeight());
}
function test_pal8os2()
{
$img = $this -> loadImage("g/pal8os2.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8rle()
{
$img = $this -> loadImage("g/pal8rle.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8topdown()
{
$img = $this -> loadImage("g/pal8topdown.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8v4()
{
$img = $this -> loadImage("g/pal8v4.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8v5()
{
$img = $this -> loadImage("g/pal8v5.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8w124()
{
$img = $this -> loadImage("g/pal8w124.bmp");
$this -> assertEquals(124, $img -> getWidth());
$this -> assertEquals(61, $img -> getHeight());
}
function test_pal8w125()
{
$img = $this -> loadImage("g/pal8w125.bmp");
$this -> assertEquals(125, $img -> getWidth());
$this -> assertEquals(62, $img -> getHeight());
}
function test_pal8w126()
{
$img = $this -> loadImage("g/pal8w126.bmp");
$this -> assertEquals(126, $img -> getWidth());
$this -> assertEquals(63, $img -> getHeight());
}
function test_rgb16_565()
{
$img = $this -> loadImage("g/rgb16-565.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb16_565pal()
{
$img = $this -> loadImage("g/rgb16-565pal.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb16()
{
$img = $this -> loadImage("g/rgb16.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb16bfdef()
{
$img = $this -> loadImage("g/rgb16bfdef.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb24()
{
$img = $this -> loadImage("g/rgb24.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb24pal()
{
$img = $this -> loadImage("g/rgb24pal.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb32()
{
$img = $this -> loadImage("g/rgb32.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb32bf()
{
$img = $this -> loadImage("g/rgb32bf.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb32bfdef()
{
$img = $this -> loadImage("g/rgb32bfdef.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal1huff()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("q/pal1huff.bmp");
}
function test_pal1p1()
{
$img = $this -> loadImage("q/pal1p1.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal2()
{
$img = $this -> loadImage("q/pal2.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal2color()
{
$img = $this -> loadImage("q/pal2color.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal4rlecut()
{
$img = $this -> loadImage("q/pal4rlecut.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal4rletrns()
{
$img = $this -> loadImage("q/pal4rletrns.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8offs()
{
$img = $this -> loadImage("q/pal8offs.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8os2_hs()
{
$img = $this -> loadImage("q/pal8os2-hs.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8os2_sz()
{
$img = $this -> loadImage("q/pal8os2-sz.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8os2sp()
{
$img = $this -> loadImage("q/pal8os2sp.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8os2v2_16()
{
$img = $this -> loadImage("q/pal8os2v2-16.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8os2v2_40sz()
{
$img = $this -> loadImage("q/pal8os2v2-40sz.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8os2v2_sz()
{
$img = $this -> loadImage("q/pal8os2v2-sz.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8os2v2()
{
$img = $this -> loadImage("q/pal8os2v2.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8oversizepal()
{
$img = $this -> loadImage("q/pal8oversizepal.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8rlecut()
{
$img = $this -> loadImage("q/pal8rlecut.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_pal8rletrns()
{
$img = $this -> loadImage("q/pal8rletrns.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb16_231()
{
$img = $this -> loadImage("q/rgb16-231.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb16_3103()
{
$img = $this -> loadImage("q/rgb16-3103.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb16faketrns()
{
$img = $this -> loadImage("q/rgb16faketrns.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb24jpeg()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("q/rgb24jpeg.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb24largepal()
{
$img = $this -> loadImage("q/rgb24largepal.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb24lprof()
{
$img = $this -> loadImage("q/rgb24lprof.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb24png()
{
$this -> expectException(Exception::class);
$img = $this -> loadImage("q/rgb24png.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb24prof()
{
$img = $this -> loadImage("q/rgb24prof.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb24prof2()
{
$img = $this -> loadImage("q/rgb24prof2.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb32_111110()
{
$img = $this -> loadImage("q/rgb32-111110.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb32_7187()
{
$img = $this -> loadImage("q/rgb32-7187.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb32_xbgr()
{
$img = $this -> loadImage("q/rgb32-xbgr.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb32fakealpha()
{
$img = $this -> loadImage("q/rgb32fakealpha.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgb32h52()
{
$img = $this -> loadImage("q/rgb32h52.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba16_1924()
{
$img = $this -> loadImage("q/rgba16-1924.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba16_4444()
{
$img = $this -> loadImage("q/rgba16-4444.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba16_5551()
{
$img = $this -> loadImage("q/rgba16-5551.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba32_1010102()
{
$img = $this -> loadImage("q/rgba32-1010102.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba32_61754()
{
$img = $this -> loadImage("q/rgba32-61754.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba32_81284()
{
$img = $this -> loadImage("q/rgba32-81284.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba32()
{
$img = $this -> loadImage("q/rgba32.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba32abf()
{
$img = $this -> loadImage("q/rgba32abf.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_rgba32h56()
{
$img = $this -> loadImage("q/rgba32h56.bmp");
$this -> assertEquals(127, $img -> getWidth());
$this -> assertEquals(64, $img -> getHeight());
}
function test_ba_bm()
{
// Different container format, not recognised as bitmap at all
$this -> expectException(Exception::class);
$img = $this -> loadImage("x/ba-bm.bmp");
}
}
+494
View File
@@ -0,0 +1,494 @@
<?php
use Mike42\GfxPhp\Image;
use Mike42\GfxPhp\RgbRasterImage;
use PHPUnit\Framework\TestCase;
use Mike42\GfxPhp\BlackAndWhiteRasterImage;
use Mike42\GfxPhp\GrayscaleRasterImage;
use Mike42\GfxPhp\IndexedRasterImage;
/**
* Simple check that files in the PyGIF test suite can be read, and have the expected dimensions.
*/
class GifsuiteTest extends TestCase
{
function loadImage(string $filename) {
return Image::fromFile(__DIR__ . "/../resources/pygif/$filename");
}
function test_255_codes() {
$img = $this -> loadImage("255-codes.gif");
$this -> assertEquals(100, $img -> getWidth());
$this -> assertEquals(100, $img -> getHeight());
}
function test_4095_codes_clear() {
$img = $this -> loadImage("4095-codes-clear.gif");
$this -> assertEquals(100, $img -> getWidth());
$this -> assertEquals(100, $img -> getHeight());
}
function test_4095_codes() {
$img = $this -> loadImage("4095-codes.gif");
$this -> assertEquals(100, $img -> getWidth());
$this -> assertEquals(100, $img -> getHeight());
}
function test_all_blues() {
$img = $this -> loadImage("all-blues.gif");
$this -> assertEquals(16, $img -> getWidth());
$this -> assertEquals(16, $img -> getHeight());
}
function test_all_greens() {
$img = $this -> loadImage("all-greens.gif");
$this -> assertEquals(16, $img -> getWidth());
$this -> assertEquals(16, $img -> getHeight());
}
function test_all_reds() {
$img = $this -> loadImage("all-reds.gif");
$this -> assertEquals(16, $img -> getWidth());
$this -> assertEquals(16, $img -> getHeight());
}
function test_animation() {
$img = $this -> loadImage("animation.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_animation_multi_image_explicit_zero_delay() {
$img = $this -> loadImage("animation-multi-image-explicit-zero-delay.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_animation_multi_image() {
$img = $this -> loadImage("animation-multi-image.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_animation_no_delays() {
$img = $this -> loadImage("animation-no-delays.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_animation_speed() {
$img = $this -> loadImage("animation-speed.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_animation_zero_delays() {
$img = $this -> loadImage("animation-zero-delays.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_comment() {
$img = $this -> loadImage("comment.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_depth1() {
$img = $this -> loadImage("depth1.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_depth2() {
$img = $this -> loadImage("depth2.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_depth3() {
$img = $this -> loadImage("depth3.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_depth4() {
$img = $this -> loadImage("depth4.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_depth5() {
$img = $this -> loadImage("depth5.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_depth6() {
$img = $this -> loadImage("depth6.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_depth7() {
$img = $this -> loadImage("depth7.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_depth8() {
$img = $this -> loadImage("depth8.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_disabled_transparent() {
$img = $this -> loadImage("disabled-transparent.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_dispose_keep() {
$img = $this -> loadImage("dispose-keep.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_dispose_none() {
$img = $this -> loadImage("dispose-none.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_dispose_restore_background() {
$img = $this -> loadImage("dispose-restore-background.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_dispose_restore_previous() {
$img = $this -> loadImage("dispose-restore-previous.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_double_clears() {
$img = $this -> loadImage("double-clears.gif");
$this -> assertEquals(8, $img -> getWidth());
$this -> assertEquals(8, $img -> getHeight());
}
function test_extra_data() {
$img = $this -> loadImage("extra-data.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_extra_pixels() {
$img = $this -> loadImage("extra-pixels.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_four_colors() {
$img = $this -> loadImage("four-colors.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_gif87a_animation() {
$img = $this -> loadImage("gif87a-animation.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_gif87a() {
$img = $this -> loadImage("gif87a.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_high_color() {
$img = $this -> loadImage("high-color.gif");
$this -> assertEquals(16, $img -> getWidth());
$this -> assertEquals(16, $img -> getHeight());
}
function test_icc_color_profile_empty() {
$img = $this -> loadImage("icc-color-profile-empty.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_icc_color_profile() {
$img = $this -> loadImage("icc-color-profile.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_image_inside_bg() {
$img = $this -> loadImage("image-inside-bg.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_image_outside_bg() {
$img = $this -> loadImage("image-outside-bg.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_image_overlap_bg() {
$img = $this -> loadImage("image-overlap-bg.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_images_combine() {
$img = $this -> loadImage("images-combine.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_images_overlap() {
$img = $this -> loadImage("images-overlap.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_image_zero_height() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("image-zero-height.gif");
}
function test_image_zero_size() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("image-zero-size.gif");
}
function test_image_zero_width() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("image-zero-width.gif");
}
function test_interlace() {
$img = $this -> loadImage("interlace.gif");
$this -> assertEquals(16, $img -> getWidth());
$this -> assertEquals(16, $img -> getHeight());
}
function test_invalid_ascii_comment() {
$img = $this -> loadImage("invalid-ascii-comment.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_invalid_background() {
$img = $this -> loadImage("invalid-background.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_invalid_code() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("invalid-code.gif");
}
function test_invalid_colors() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("invalid-colors.gif");
}
function test_invalid_transparent() {
$img = $this -> loadImage("invalid-transparent.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_invalid_utf8_comment() {
$img = $this -> loadImage("invalid-utf8-comment.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_large_codes() {
$img = $this -> loadImage("large-codes.gif");
$this -> assertEquals(100, $img -> getWidth());
$this -> assertEquals(100, $img -> getHeight());
}
function test_large_comment() {
$img = $this -> loadImage("large-comment.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_local_color_table() {
$img = $this -> loadImage("local-color-table.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_loop_animexts() {
$img = $this -> loadImage("loop-animexts.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_loop_buffer() {
$img = $this -> loadImage("loop-buffer.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_loop_buffer_max() {
$img = $this -> loadImage("loop-buffer_max.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_loop_infinite() {
$img = $this -> loadImage("loop-infinite.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_loop_max() {
$img = $this -> loadImage("loop-max.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_loop_once() {
$img = $this -> loadImage("loop-once.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_many_clears() {
$img = $this -> loadImage("many-clears.gif");
$this -> assertEquals(8, $img -> getWidth());
$this -> assertEquals(8, $img -> getHeight());
}
function test_max_codes() {
$img = $this -> loadImage("max-codes.gif");
$this -> assertEquals(100, $img -> getWidth());
$this -> assertEquals(100, $img -> getHeight());
}
function test_max_height() {
$img = $this -> loadImage("max-height.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(65535, $img -> getHeight());
}
function test_max_size() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("max-size.gif");
}
function test_max_width() {
$img = $this -> loadImage("max-width.gif");
$this -> assertEquals(65535, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_missing_pixels() {
$img = $this -> loadImage("missing-pixels.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_no_clear_and_eoi() {
$img = $this -> loadImage("no-clear-and-eoi.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_no_clear() {
$img = $this -> loadImage("no-clear.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_no_data() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("no-data.gif");
}
function test_no_eoi() {
$img = $this -> loadImage("no-eoi.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_no_global_color_table() {
$img = $this -> loadImage("no-global-color-table.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_nul_application_extension() {
$img = $this -> loadImage("nul-application-extension.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_nul_comment() {
$img = $this -> loadImage("nul-comment.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_plain_text() {
$img = $this -> loadImage("plain-text.gif");
$this -> assertEquals(40, $img -> getWidth());
$this -> assertEquals(8, $img -> getHeight());
}
function test_transparent() {
$img = $this -> loadImage("transparent.gif");
$this -> assertEquals(2, $img -> getWidth());
$this -> assertEquals(2, $img -> getHeight());
}
function test_unknown_application_extension() {
$img = $this -> loadImage("unknown-application-extension.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_unknown_extension() {
$img = $this -> loadImage("unknown-extension.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_xmp_data_empty() {
$img = $this -> loadImage("xmp-data-empty.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_xmp_data() {
$img = $this -> loadImage("xmp-data.gif");
$this -> assertEquals(1, $img -> getWidth());
$this -> assertEquals(1, $img -> getHeight());
}
function test_zero_height() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("zero-height.gif");
}
function test_zero_size() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("zero-size.gif");
}
function test_zero_width() {
$this -> expectException(Exception::class);
$img = $this -> loadImage("zero-width.gif");
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,77 @@
<?php
use Mike42\GfxPhp\Image;
use PHPUnit\Framework\TestCase;
class SmallFileTest extends TestCase
{
function loadImage(string $filename) {
$img = Image::fromFile(__DIR__ . "/../resources/small-files/$filename");
return $img -> toBlackAndWhite();
}
function testWhite() {
$expected = " \n";
$width = 1;
$height = 1;
foreach(['canvas_white.gif', 'canvas_white.png'] as $fn) { // Also jpg and bmp
$img = $this -> loadImage($fn);
$this -> assertEquals($expected, $img -> toString());
$this -> assertEquals($height, $img -> getHeight());
$this -> assertEquals($width, $img -> getWidth());
}
}
function testBlack() {
$expected = "\n";
$width = 1;
$height = 1;
foreach(['canvas_black.gif', 'canvas_black.png'] as $fn) { // Also jpg and bmp
$img = $this -> loadImage($fn);
$this -> assertEquals($expected, $img -> toString());
$this -> assertEquals($height, $img -> getHeight());
$this -> assertEquals($width, $img -> getWidth());
}
}
function testBlackWhite() {
$expected = "▀▀\n";
$width = 2;
$height = 2;
foreach(['black_white.gif', 'black_white.png'] as $fn) { // Also jpg and bmp
$img = $this -> loadImage($fn);
$this -> assertEquals($expected, $img -> toString());
$this -> assertEquals($height, $img -> getHeight());
$this -> assertEquals($width, $img -> getWidth());
}
}
function testBlackTransparent() {
$expected = "▀▀\n";
$width = 2;
$height = 2;
foreach(['black_transparent.gif', 'black_transparent.png'] as $fn) { // Also jpg and bmp
$img = $this -> loadImage($fn);
$this -> assertEquals($expected, $img -> toString());
$this -> assertEquals($height, $img -> getHeight());
$this -> assertEquals($width, $img -> getWidth());
}
}
function testBlackWhiteTall() {
$expected = "██\n" .
"██\n" .
"██\n" .
"██\n" .
" \n" .
" \n" .
" \n" .
" \n";
$width = 2;
$height = 16;
$img = $this -> loadImage('black_white_tall.png');
$this -> assertEquals($expected, $img -> toString());
$this -> assertEquals($height, $img -> getHeight());
$this -> assertEquals($width, $img -> getWidth());
}
}