1
0
Fork 0

Initial commit

This commit is contained in:
Henrik Hautakoski 2026-04-22 16:41:48 +02:00
commit 3304b53c41
38 changed files with 6573 additions and 0 deletions

View file

@ -0,0 +1,27 @@
<?php
use Doom\Picture\DoomPalette;
test('provides a valid default doom palette', function (): void {
$palette = DoomPalette::default();
expect($palette->toArray())->toHaveCount(256);
expect($palette->colorAt(0))->toBe([0, 0, 0]);
expect($palette->colorAt(1))->toBe([31, 23, 11]);
});
test('extracts palette data from PLAYPAL bytes', function (): void {
$palette0 = str_repeat("\x00\x00\x00", 256);
$palette1 = str_repeat("\x10\x20\x30", 256);
$palette = DoomPalette::fromPlaypal($palette0 . $palette1, 1);
expect($palette->toArray())->toHaveCount(256);
expect($palette->colorAt(0))->toBe([16, 32, 48]);
expect($palette->colorAt(255))->toBe([16, 32, 48]);
});
test('rejects invalid PLAYPAL palette selection', function (): void {
expect(fn () => DoomPalette::fromPlaypal("\x00", 0))->toThrow(RuntimeException::class);
expect(fn () => DoomPalette::fromPlaypal(str_repeat("\x00", 768), -1))->toThrow(InvalidArgumentException::class);
});