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

@ -10,42 +10,42 @@ class DamageBonusUseCaseTest {
val userCase = CharacterSheetUseCase()
(0 until 12).forEach {
val result = userCase.damageBonus(sum = it)
val result = userCase.meleeBonusDamage(sum = it)
val expected = "-1d6"
assert(result == expected) {
"Expected:'$expected' bonus damage for stat:'$it' but was:'$result'"
}
}
(12 until 18).forEach {
val result = userCase.damageBonus(sum = it)
val result = userCase.meleeBonusDamage(sum = it)
val expected = "-1d4"
assert(result == expected) {
"Expected:'$expected' bonus damage for stat:'$it' but was:'$result'"
}
}
(18 until 23).forEach {
val result = userCase.damageBonus(sum = it)
val result = userCase.meleeBonusDamage(sum = it)
val expected = "+0"
assert(result == expected) {
"Expected:'$expected' bonus damage for stat:'$it' but was:'$result'"
}
}
(23 until 30).forEach {
val result = userCase.damageBonus(sum = it)
val result = userCase.meleeBonusDamage(sum = it)
val expected = "+1d4"
assert(result == expected) {
"Expected:'$expected' bonus damage for stat:'$it' but was:'$result'"
}
}
(30 until 40).forEach {
val result = userCase.damageBonus(sum = it)
val result = userCase.meleeBonusDamage(sum = it)
val expected = "+1d6"
assert(result == expected) {
"Expected:'$expected' bonus damage for stat:'$it' but was:'$result'"
}
}
(40 until 100).forEach {
val result = userCase.damageBonus(sum = it)
val result = userCase.meleeBonusDamage(sum = it)
val expected = "+2d6"
assert(result == expected) {
"Expected:'$expected' bonus damage for stat:'$it' but was:'$result'"

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 }}"
}
}