packages/sql-parser/tests/Unit/Automaton/Lr0AutomatonTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Automaton;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\Small;
9use PHPUnit\Framework\TestCase;
10use SqlParser\Automaton\Lr0Automaton;
11
12#[CoversClass(Lr0Automaton::class)]
13#[Small]
14final class Lr0AutomatonTest extends TestCase
15{
16 public function testStateCount(): void
17 {
18 self::assertSame(2, (new Lr0Automaton([[0], [1]], [[3 => 1], []], [[], [0]]))->stateCount());
19 }
20
21 public function testTransition(): void
22 {
23 $automaton = new Lr0Automaton([[0], [1]], [[3 => 1], []], [[], [0]]);
24
25 self::assertSame(1, $automaton->transition(0, 3));
26 self::assertNull($automaton->transition(0, 4));
27 self::assertNull($automaton->transition(1, 3));
28 }
29}
30