package lexer import org.junit.jupiter.api.Test import kotlin.test.assertEquals class LexerScanPrologTest { @Test fun scan_simple_atom() { val tokens = Lexer("atom.").scan() assertEquals(3, tokens.size) assertEquals(TokenType.ALPHANUMERIC, tokens[0].type, "Expected ALPHANUMERIC token, got ${tokens[0].type}") assertEquals(TokenType.DOT, tokens[1].type, "Expected DOT token, got ${tokens[1].type}") assertEquals(TokenType.EOF, tokens[2].type, "Expected EOF token, got ${tokens[2].type}") } @Test fun scan_variable() { val tokens = Lexer("X.").scan() assertEquals(3, tokens.size) assertEquals(TokenType.ALPHANUMERIC, tokens[0].type, "Expected ALPHANUMERIC token, got ${tokens[0].type}") assertEquals(TokenType.DOT, tokens[1].type, "Expected DOT token, got ${tokens[1].type}") assertEquals(TokenType.EOF, tokens[2].type, "Expected EOF token, got ${tokens[2].type}") } }