1
0
Fork 0
doom-wad-php/tests/Unit/Picture/DoomPaletteTest.php
2026-04-22 16:41:48 +02:00

27 lines
991 B
PHP

<?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);
});