feat(lexer): Scan dot
This commit is contained in:
parent
f72501fde2
commit
3e80aee0db
6 changed files with 67 additions and 33 deletions
|
@ -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}")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
package be.ugent.logprog
|
||||
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
import org.junit.jupiter.api.Assertions.*
|
||||
import testMe
|
||||
|
||||
class MainTest {
|
||||
@Test
|
||||
fun Main_should_return_string() {
|
||||
assertTrue(true)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testMe_should_return_string() {
|
||||
assertEquals("Hello, Kotlin Command Line Utility!", testMe())
|
||||
assertInstanceOf(String::class.java, testMe())
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testMe_shouldfail() {
|
||||
assertTrue(false, "This test should fail");
|
||||
}
|
||||
}
|
||||
|
Reference in a new issue