Added countables test that autocomplete values actually return valid countables

This commit is contained in:
yairm210 2025-06-01 11:59:04 +03:00
parent 30270f2014
commit a644875139
2 changed files with 21 additions and 0 deletions

View File

@ -38,6 +38,7 @@ enum class Countables(
override val documentationHeader = "Integer constant - any positive or negative integer number" override val documentationHeader = "Integer constant - any positive or negative integer number"
override fun matches(parameterText: String) = parameterText.toIntOrNull() != null override fun matches(parameterText: String) = parameterText.toIntOrNull() != null
override fun eval(parameterText: String, stateForConditionals: StateForConditionals) = parameterText.toIntOrNull() override fun eval(parameterText: String, stateForConditionals: StateForConditionals) = parameterText.toIntOrNull()
override fun getKnownValuesForAutocomplete(ruleset: Ruleset): Set<String> = setOf()
override val example: String = "123" override val example: String = "123"
}, },
@ -130,6 +131,7 @@ enum class Countables(
UniqueParameterType.PolicyFilter.getTranslatedErrorSeverity(parameterText, ruleset) UniqueParameterType.PolicyFilter.getTranslatedErrorSeverity(parameterText, ruleset)
override fun getKnownValuesForAutocomplete(ruleset: Ruleset): Set<String> = override fun getKnownValuesForAutocomplete(ruleset: Ruleset): Set<String> =
UniqueParameterType.PolicyFilter.getKnownValuesForAutocomplete(ruleset) UniqueParameterType.PolicyFilter.getKnownValuesForAutocomplete(ruleset)
.map { text.fillPlaceholders(it) }.toSet()
}, },
RemainingCivs("Remaining [civFilter] Civilizations") { RemainingCivs("Remaining [civFilter] Civilizations") {

View File

@ -3,6 +3,7 @@ package com.unciv.uniques
import com.unciv.logic.city.City import com.unciv.logic.city.City
import com.unciv.logic.civilization.Civilization import com.unciv.logic.civilization.Civilization
import com.unciv.models.ruleset.Ruleset import com.unciv.models.ruleset.Ruleset
import com.unciv.models.ruleset.RulesetCache
import com.unciv.models.ruleset.unique.Countables import com.unciv.models.ruleset.unique.Countables
import com.unciv.models.ruleset.unique.StateForConditionals import com.unciv.models.ruleset.unique.StateForConditionals
import com.unciv.models.ruleset.unique.Unique import com.unciv.models.ruleset.unique.Unique
@ -74,6 +75,24 @@ class CountableTests {
} }
} }
} }
@Test
fun testAllCountableAutocompleteValuesMatch() {
RulesetCache.loadRulesets(noMods = true)
val ruleset = RulesetCache.getVanillaRuleset()
for (countable in Countables.entries) {
val knownValues = countable.getKnownValuesForAutocomplete(ruleset)
for (value in knownValues) {
val matchedCountable = Countables.getMatching(value, ruleset)
assertEquals(
"Countable ${countable.name} should match its own autocomplete value: $value",
countable, matchedCountable
)
}
}
}
@Test @Test
fun testPlaceholderParams(){ fun testPlaceholderParams(){