test: cover run

This commit is contained in:
dualfroz committed 2026-09-13 21:43:48 +02:00
1 parent 6f581d988e
commit 8d0fb81ba9
1 file changed
+173 -4
+173 -4
View File
@@ -14574,10 +14574,179 @@ end
local order = { local order = {
"rngDeterminism", "mapDeterminism", "tilesRegistry", "fovKnownScene", "losSightLine", "rngDeterminism", "mapDeterminism", "tilesRegistry", "fovKnownScene", "losSightLine",
"astarPathing", "combatResolution", "itemsAndEquipment", "affixes", "statusEffects", "astarPathing", "combatResolution", "itemsAndEquipment", "affixes", "statusEffects",
"scheduler", "generators", "connectivityRepair", "dungeonPersistence", "monsterAiChase", "monsterAiRanged", "scheduler", "generators",
"monsterAiFlee", "monsterAiDeterministic", "doorsAndKeys", "traps", "lightAndDark", "mazeGeneratorIsDeterministicDiffersAcrossSeedsAndLeavesEveryFloorCellReachable",
"identification", "effects", "messageLog", "weaponAffixOnHit", "saveLoadRoundTrip", "mazeGeneratorIsRegisteredButExcludedFromTheDepthCycle",
"deterministicPlaythrough", "autoplayDescends", "mazeGeneratorProducesOneWideCorridorsRatherThanOpenRooms",
"mazeGeneratorBraidingOpensSomeDeadEndsWithoutTouchingConnectivity",
"prefabVaultSizeMatchesItsWidestRowAndItsRowCount",
"prefabVaultFitsAcceptsAnAnchorWithAWallGapToEveryBorderAndRejectsOneWithout",
"prefabVaultStampWritesEveryGlyphAndCollectsTreasureMonsterAndLootMarkersInMapOrder",
"prefabVaultStampIsDeterministicForAFixedAnchor",
"builderCanBeExplicitlySteeredToAMazeFloorAndStillYieldsAPlayableLevel",
"connectivityRepair", "dungeonPersistence", "monsterAiChase", "monsterAiRanged",
"monsterAiFlee", "monsterAiDeterministic",
"aiActConfusedMonsterSometimesStumblesInsteadOfChasing",
"aiActWithoutConfusionAlwaysRunsTheNormalBehaviour",
"aiActBlindedArcherNeitherShootsNorChasesEvenWithAClearShot",
"gameAdjacentAllyFindsACompanionStandingRightNextToAMonster",
"gameAdjacentAllyIgnoresAHostileMonsterAndOnlyCountsCardinalAdjacency",
"gameAdjacentAllyBreaksTiesByTheLowerEntityIdAndIgnoresADeadAlly",
"aiChaseAttacksAnAllyBlockingTheOnlyCorridorToThePlayerInsteadOfIdlingForever",
"aiChasePrefersAnAdjacentPlayerOverAnAdjacentAllyWhenBothAreInMeleeRange",
"aiPackAttacksAnAllyBlockingTheOnlyCorridorToThePlayerInsteadOfIdlingForever",
"aiTunnelAttacksAnAllyBlockingItsOnlyGapInsteadOfIdling",
"aiRangedAttacksABlockingAllyWhenItHasNoLineOfSightToThePlayerAtAll",
"gameMoveMonsterAttacksAnAllyItBumpsIntoInsteadOfDoingNothing",
"aiActConfusedMonsterCanStumbleIntoAttackingABlockingAllyInsteadOfIdling",
"doorsAndKeys", "traps",
"gameSpringTrapConfuseEffectAppliesToAnyVictimNotJustThePlayer",
"gameSpringTrapBlindEffectAppliesToAnyVictimNotJustThePlayer",
"gameSpringTrapStunEffectAppliesToAnyVictimNotJustThePlayer",
"gameMovePlayerConfusionEitherFollowsTheChosenDirectionOrStumblesElsewhere",
"gameMovePlayerConfusionStumbleIntoAWallStillSpendsTheTurn",
"gameMovePlayerWithoutConfusionNeverStumbles",
"gameAllyActsConfusedReturnsFalseImmediatelyWithoutTheStatus",
"lightAndDark",
"identification", "identifyGivesEveryPotionTypeItsOwnDistinctUnidentifiedLook", "effects",
"effectsMessagesAddressThePlayerInSecondPersonNotThirdPersonSingular",
"effectsClarityMessageAddressesThePlayerPossessively",
"effectsCureMessagesAddressThePlayerPossessivelyForAllFourOutcomes", "hazards",
"shrinePrayGrantsWarBlessingWhenFavorHolds", "shrinePrayGrantsVitalityBlessing",
"shrinePrayGrantsWisdomBlessing", "shrinePrayGrantsFortuneBlessingAndCleansesAilments",
"shrinePrayCanCurseInsteadOfBless", "shrinePrayFailsWithoutEnoughGold",
"shrineCostAndCurseOddsRiseWithUse", "shrineFieldsSurviveSerialization",
"builderOccasionallyPlacesAShrineFromDepthFour", "shrinesStayOffTheShallowFloors",
"autopilotPraysAtAnUnspentShrineWhenAffordable", "autopilotSkipsAnAlreadyUsedShrine",
"shrineRendersItsGlyphWhenVisible",
"messageLog", "weaponAffixOnHit",
"progressionLeveling", "progressionMonsterKillGrantsXp",
"spellCastMissileKillsAndGrantsXp", "spellCastFailsWithoutSpendingState",
"spellLearnFromTome", "spellHealAndShield", "spellBlinkMovesWithinRadius",
"manaRegeneratesEachTurn",
"throwWeaponHitsAndLands", "throwWeaponKillGrantsXp", "throwPotionAppliesHostileEffect",
"throwConfusePotionAppliesTheStatusToTheTargetNotTheThrower",
"throwBlindPotionAppliesTheStatusToTheTargetNotTheThrower",
"throwLevitatePotionAppliesTheStatusToTheTargetNotTheThrower",
"throwOutOfRangeFails",
"rangedShotHitsAtRangeAndConsumesAmmo", "rangedShotKillGrantsXp", "rangedFailsWithoutAmmo",
"rangedFailsOutOfRange", "ammoStacksOnPickup",
"trollRegenerateUnlessBurning", "ratHasNoRegen", "wretchDeathBurstsPoisonSpores",
"dragonBreathIgnitesPlayer",
"necromancerSummonsZombie", "summonRespectsPopulationCap",
"curseAtRangeHurtsAndWeakens", "curseDamageIsMitigatedByThePlayersDefenseLikeAnyOtherAttack",
"curseBreaksThePlayersMeleeMomentumStack", "curseWearsThePlayersEquippedArmor",
"curseWithheldWhenAdjacent", "abilityCooldownBlocksImmediateReuse",
"shriekAtRangeBlindsThePlayer", "shriekWithheldWhenAdjacent", "shriekIsUnavailableOutOfRange",
"shriekBlindnessReducesTheVictimsEffectiveSightRadius",
"healerMendsNeediestAlly", "healerSkipsWhenAlliesAreHealthy",
"healerNeverMendsThePlayersOwnCompanionHirelingOrThrall",
"rallyBuffsAdjacentAllies", "rallySkipsWhenNoUnbuffedAlliesAdjacent",
"rallyNeverBuffsThePlayersOwnCompanionHirelingOrThrall",
"footpadStealsThenFlees", "footpadWithNothingToStealStillFlees",
"slimeSplitsOnSurvivedHit", "splitCapsAtTwoGenerations",
"takeMonsterTurnPrefersAbilityOverMovement", "takeMonsterTurnFallsBackToAiWhenOnCooldown",
"abilityFieldsSurviveSerialization",
"statusEffectKillGrantsXpAndLogsDeath",
"hazardKillDuringMonsterTurnGrantsXp", "hazardStepRunsOncePerPlayerRound",
"saveLoadRoundTrip", "deterministicPlaythrough", "autoplayDescends",
"amuletSpawnsOnFinalFloorOnly", "descendIsBlockedAtTheFinalFloor",
"ascendWithoutAmuletDoesNotWin", "ascendWithAmuletWinsTheGame", "wonGameHaltsTheAutopilot",
"autopilotFetchesTheAmuletAndWins",
"shopPriceCatalogScalesWithPower", "shopStockRollsAffordableWares",
"goldPickupAddsToWalletNotInventory",
"affordableWareIsBoughtAutomaticallyOnPickup", "unaffordableWareStaysOnTheGround",
"deadKeeperMakesWaresFreeToLoot", "stealingFromShopTurnsTheKeeperHostile",
"hostileShopkeeperChasesLikeAnyMonster", "passiveShopkeeperIgnoresTheAdjacentPlayer",
"sellItemGrantsHalfPriceAndRemovesIt", "builderOccasionallySeedsAShopWithMatchingWares",
"shopAndLooseGoldStayOffTheShallowFloors",
"classApplyGrantsFighterStatBonuses", "classApplyGrantsRogueGoldAndAttack",
"classApplyGrantsMageManaAndAttack", "classApplyGrantsRangerBowAndAmmo", "invalidClassIsIgnored",
"skillLearnRespectsClassLevelAndPoints", "skillCooldownBlocksImmediateReuseAndTicksDown",
"fighterCleaveHitsPrimaryAndAdjacentMonsters",
"fighterCleaveSplashRespectsAFireImmuneTargetLikeThePrimaryHitAlreadyDoes",
"fighterSecondWindRestoresPortionOfMaxHp",
"fighterBerserkBoostsAttackAtLowHp", "rogueBackstabDoublesDamageOnFullHpTarget",
"rogueEvasionCanFullyNegateMeleeHit", "poisonBladeAppliesPoisonOnNextMeleeHitOnly",
"pendingPoisonBladeReadinessSurvivesAGameSaveLoadRoundTrip",
"mageOverloadBoostsMissileDamage", "mageMeditateRestoresManaWithinCap",
"mageManaShieldRaisesDefenseWhileManaHeld", "rangerMultishotHitsTwoTargetsForOneArrow",
"rangerMultishotRespectsPhysicalResistanceOnBothSplitArrows",
"rangerCamouflageShrinksDetectionOnDarkFloors", "rangerTrueshotAddsFlatRangedDamage",
"effectiveRadiusBlindStatusOverridesLightAndWeatherToAMinimumOfOne",
"canSeePlayerBlindedMonsterOnlyDetectsThePlayerAtMeleeRange",
"autopilotLearnsSkillsAutomaticallyAsPointsAllow", "skillFieldsSurviveSerialization",
"craftingForgeSpendsEssenceForATierOneGem", "craftingMergeGemsCombinesMatchingPairsIntoTheNextTier",
"craftingSocketAddsPowerAndSwapsRiderOnResocket", "craftingTemperRaisesPowerAtRisingCostUpToACap",
"craftingTemperRefusesWithoutEnoughEssence", "craftingEnchantGrantsAChosenAffixOnce",
"craftingDisenchantStripsAffixAndRefundsEssence", "craftingSocketedGemRidersStackWithARolledAffixOnHit",
"craftingShockRiderActuallyStunsTheVictimOnItsNextTurnNotJustOnPaper",
"gameCraftingWrappersDriveTheFullPipeline", "monsterKillsGrantEssenceScaledToTheirXpReward",
"craftingFieldsSurviveSerialization",
"alchemyBrewResolvesAKnownPairToItsFixedPotion", "alchemyBrewIsOrderIndependent",
"alchemyBrewCurdlesOnAnOpposedPairing", "alchemyLookupRejectsAnUnknownHerb",
"gameBrewAtCombinesTwoHerbsIntoAPotionAtACauldron", "gameBrewAtFailsWithoutACauldronUnderfoot",
"gameBrewAtRequiresTwoHerbItems", "gameBrewAtCurdlesIntoGasInsteadOfAPotion",
"buildersScatterHerbsFromTheFirstFloor", "cauldronsStayOffTheEntranceFloor",
"buildersOccasionallyPlaceACauldronFromDepthTwo", "cauldronFieldsSurviveSerialization",
"cauldronRendersItsGlyphWhenVisible",
"nodesHarvestingAnOreVeinPaysEssenceAndSpendsACharge",
"nodesHarvestingAnOreVeinDoublesItsYieldDuringRichVeins",
"nodesHarvestingAGemSeamYieldsARawTierOneGemOfItsElement",
"nodesGoingFallowRefusesFurtherHarvestsUntilItReopens",
"nodesStepCountsDownAndReopensAFallowNode", "nodesFieldsSurviveSerialization",
"nodeRendersItsGlyphWhenVisible",
"gameHarvestNodeAtAnOreVeinAddsEssenceAndSpendsACharge",
"gameHarvestNodeFailsWithoutANodeUnderfoot", "gameHarvestNodeOnAFallowVeinFails",
"autopilotHarvestsAnOreVeinWhenIdleAndStandingOnIt", "autopilotSkipsAFallowNode",
"buildersNeverPlaceANodeOnTheEntranceFloor", "buildersAlwaysPlaceAtLeastOneNodeFromDepthTwoOn",
"corpsesSpawnsForAWildMonsterButNotForUndeadMimicOrBoss",
"corpsesNutritionScalesWithTheFelledSpeciesMaxHpClampedToAFixedBand",
"corpsesStepCountsDownAndRotsAwayEntirely",
"corpsesGoesRottenPastItsThresholdButStaysButcherableUntilThen",
"corpsesButcheringFreshMeatAddsFoodToInventoryAndConsumesTheCorpse",
"corpsesButcheringRottenMeatPoisonsThePlayerInsteadAndStillConsumesTheCorpse",
"corpseFieldsSurviveSerialization", "corpseRendersItsGlyphWhenVisible",
"gameAwardKillLeavesACorpseForAWildMonsterButNotForUndeadOrMimic",
"gameButcherCorpseAtFreshMeatFeedsThePlayerAndClearsTheCorpse",
"gameButcherCorpseFailsWithoutACorpseUnderfoot",
"autopilotButchersAFreshCorpseWhenIdleAndStandingOnIt",
"autopilotLeavesARottenCorpseAloneRatherThanRiskingPoison",
"hungerCurrentDefaultsToCapForAFreshEntity",
"hungerTierOfClassifiesEachBandAtItsBoundaries",
"hungerAttackAndDefensePenaltiesEscalateByTier",
"entityEffectiveAttackAndDefenseFoldInTheHungerPenalty",
"hungerSuppressesRegenOnlyAtWeakOrWorse",
"hungerTickDrainsByOneAndLogsOnlyOnATierCrossing",
"hungerTickBitesForOneHpEveryRoundWhileStarving",
"hungerEatCapsAtTheCeilingAndWastesAnOverfullMealIntoBloat",
"hungerEatBelowTheCeilingBanksNutritionWithNoWaste",
"hungerEatClampsAMealThatWouldOverflowPastTheCapWithoutBloating",
"gameHungerTorchTickSuppressesRingRegenOnceThePlayerIsWeak",
"gameUseItemEatingFoodRestoresSatiationAndLogsTheMeal",
"gameUseItemEatingFoodWhileAlreadyFullAppliesSlowAndLogsBloat",
"reanimationRaiseCreatesAThrallAdjacentToThePlayerAndSpendsTheCorpseAndSanity",
"reanimationRaiseRefusesARottenCorpseWithoutSpendingAnything",
"reanimationRaiseRefusesWithoutEnoughSanityAndLeavesTheCorpseAlone",
"reanimationRaiseScalesThrallStatsDownFromTheOriginSpecies",
"reanimationRaiseFallsBackToAPlainSkeletonForAnUnrecognisedSpecies",
"reanimationRaiseRetiresAnEarlierThrallWhenRaisingAnother",
"reanimationActAttacksAnAdjacentHostileMonsterAndCanKillIt",
"reanimationActAdvancesOnAVisibleMonsterItCannotYetReach",
"reanimationActIgnoresAMonsterBeyondItsSightRadius",
"reanimationActBlindedThrallOnlyDetectsAnAdjacentHostileNotOneWithinItsSightRadius",
"reanimationActAttackingAnAdjacentMonsterEmitsNoiseThatCanStirADormantBystander",
"reanimationActFollowsThePlayerWhenNoMonsterIsVisible",
"reanimationActConfusedThrallSometimesStumblesInsteadOfFightingAnAdjacentHostile",
"reanimationActCollapsesOnceItsBorrowedAnimationRunsOut",
"takeMonsterTurnRoutesAThrallThroughReanimationAct",
"gameRaiseCorpseSucceedsAndLogsTheCallAnswered",
"gameRaiseCorpseFailsWithoutACorpseUnderfoot",
"scavengingHerbForMapsEachWildFactionToItsOwnFixedHerb",
"scavengingHerbForReturnsNilForACorpseWithNoBestiaryEntry",
"gameScavengeCorpseCarvesTheMatchingHerbAndClearsTheCorpse",
"gameScavengeCorpseFailsWithoutACorpseUnderfoot",
"gameScavengeCorpseFailsOnARottenCorpse",
} }
for _, name in ipairs(order) do for _, name in ipairs(order) do