feat(lexer): Scan dot

This commit is contained in:
Tibo De Peuter 2025-03-27 16:05:39 +01:00
parent f72501fde2
commit 3e80aee0db
Signed by: tdpeuter
GPG key ID: 38297DE43F75FFE2
6 changed files with 67 additions and 33 deletions

View file

@ -1,16 +1,35 @@
package be.ugent.logprog.lexer
import lexer.Error
import lexer.Lexer
import lexer.TokenType
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import kotlin.test.assertEquals
class LexerScanTest {
@Test
fun scan_emptyString_returnsEOF() {
val lexer = Lexer()
val tokens = lexer.scan("")
val lexer = Lexer("")
val tokens = lexer.scan()
assertEquals(1, tokens.size)
assertEquals(TokenType.EOF, tokens[0].type)
}
@Test
fun scan_unknownSymbol_returnsError() {
val lexer = Lexer("")
assertThrows<Error>({
val tokens = lexer.scan()
})
}
@Test
fun scan_dot_returnsDot() {
val lexer = Lexer(".")
val tokens = lexer.scan()
assertEquals(2, tokens.size)
assertEquals(TokenType.DOT, tokens[0].type, "Expected DOT token, got ${tokens[0].type}")
assertEquals(TokenType.EOF, tokens[1].type, "Expected EOF token, got ${tokens[1].type}")
}
}