LevelUp feature.

This commit is contained in:
Thomas Andres Gomez 2025-03-07 15:49:36 +01:00
parent 84515e6d57
commit 16b2b49f03
75 changed files with 2532 additions and 777 deletions

View file

@ -4,6 +4,7 @@ import com.pixelized.shared.lwa.parser.dice.DiceParser
import com.pixelized.shared.lwa.parser.expression.Expression
import com.pixelized.shared.lwa.parser.expression.ExpressionParser
import com.pixelized.shared.lwa.parser.expression.ExpressionParser.Error
import com.pixelized.shared.lwa.parser.word.Word
import com.pixelized.shared.lwa.parser.word.WordParser
import org.junit.Test
import kotlin.test.assertFailsWith
@ -18,9 +19,6 @@ class ExpressionParserTest {
)
parser.test("", null)
parser.test(" ", null)
assertFailsWith(Error.UnRecognizedToken::class) {
parser.test("pouet", null)
}
assertFailsWith(Error.ExpectedTokenCharacter::class) {
parser.test("1+", null)
}
@ -98,6 +96,10 @@ class ExpressionParserTest {
expression = "max(1,2)",
expected = Expression.Maximum(Expression.Flat(1), Expression.Flat(2))
)
parser.test(
expression = "floor5(13)",
expected = Expression.Floor5(Expression.Flat(13))
)
}
@Test
@ -122,6 +124,50 @@ class ExpressionParserTest {
)
}
@Test
fun testWordExpression() {
val parser = ExpressionParser(
diceParser = DiceParser(),
wordParser = WordParser(),
)
parser.test(
expression = "BDC",
expected = Expression.WordExpression(Word(Word.Type.BDC)),
)
parser.test(
expression = "BDD",
expected = Expression.WordExpression(Word(Word.Type.BDD)),
)
parser.test(
expression = "STR",
expected = Expression.WordExpression(Word(Word.Type.STR)),
)
parser.test(
expression = "DEX",
expected = Expression.WordExpression(Word(Word.Type.DEX)),
)
parser.test(
expression = "CON",
expected = Expression.WordExpression(Word(Word.Type.CON)),
)
parser.test(
expression = "HEI",
expected = Expression.WordExpression(Word(Word.Type.HEI)),
)
parser.test(
expression = "INT",
expected = Expression.WordExpression(Word(Word.Type.INT)),
)
parser.test(
expression = "POW",
expected = Expression.WordExpression(Word(Word.Type.POW)),
)
parser.test(
expression = "CHA",
expected = Expression.WordExpression(Word(Word.Type.CHA)),
)
}
@Test
fun testReadWrite() {
val parser = ExpressionParser(
@ -142,7 +188,7 @@ class ExpressionParserTest {
) {
val result = parse(input = expression)
assert(result == expected) {
"ExpressionParser.parse(input=$expression) is expected to return:$expected, but was:$result"
"ExpressionParser.parse(input=$expression) is expected to return:$expected, but was:$result type:${result?.let { it::class.java.simpleName }}"
}
}