<?php declare(strict_types=1); namespace Aviat\Kilo\Tests\Enum; use function Aviat\Kilo\ctrl_key; use Aviat\Kilo\Enum\KeyCode; use PHPUnit\Framework\TestCase; class KeyCodeTest extends TestCase { public function testSanityCheck(): void { for ($i = 1; $i < 27; $i++) { $char = chr(0x60 + $i); $ord = $i; $expected = chr($ord); $actual = KeyCode::CTRL($char); $this->assertEquals(ctrl_key($char), $ord, 'chr(ctrl_key) !== CTRL'); $this->assertEquals($expected, $actual, "CTRL+'{$char}' should return chr($ord)"); } } public function testNullOnInvalidChar(): void { $this->assertNull(KeyCode::CTRL("\t")); } public function testSameOutputOnUpperOrLower(): void { $lower = KeyCode::CTRL('v'); $upper = KeyCode::CTRL('V'); $this->assertEquals($lower, $upper); } }