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