From 06f2f07e001bdb8f727c84d28f85e0864ab17fd8 Mon Sep 17 00:00:00 2001 From: DualFroz Date: Mon, 14 Sep 2026 02:51:17 +0200 Subject: [PATCH] test: test more of run --- tests/run.lua | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 173 insertions(+) diff --git a/tests/run.lua b/tests/run.lua index 88a5c92..57b341b 100644 --- a/tests/run.lua +++ b/tests/run.lua @@ -15266,6 +15266,179 @@ local order = { "infightingStrikeEmitsNoiseThatCanStirADormantBystanderNotInvolvedInTheFight", "infightingStrikeAppliesTheAttackersEliteLifestealAgainstAnyDefenderNotJustThePlayer", "infightingStrikeAppliesTheAttackersEliteOnHitRiderAgainstAnyDefenderNotJustThePlayer", + "infightingStrikeCanTransmitTheAttackersBiteDiseaseToAnyDefenderNotJustThePlayer", + "infightingTryActAttacksAnAdjacentRivalAndReturnsTrue", + "infightingTryActStepsTowardADistantRivalAndReturnsTrue", + "infightingTryActReturnsFalseWithNoQualifyingTarget", + "gameTakeMonsterTurnLetsARivalFightInsteadOfChasingADistantPlayer", + "spellsDiscordAppliesTheDiscordStatusAndSpendsItsListedManaCost", + "spellsDiscordFailsOutOfRangeAndSpendsNothing", + "builderCanRollATomeOfTheDiscordSpellSomewhereInARangeOfSeeds", + "spellsConfuseAppliesTheConfuseStatusAndSpendsItsListedManaCost", + "spellsConfuseFailsOutOfRangeAndSpendsNothing", + "builderCanRollATomeOfTheConfuseSpellSomewhereInARangeOfSeeds", + "builderCanRollAConfuseTrapOrTrapKitSomewhereInARangeOfSeeds", + "builderCanRollABlindTrapOrTrapKitSomewhereInARangeOfSeeds", + "builderCanRollAStunTrapOrTrapKitSomewhereInARangeOfSeeds", + "spellsBlindAppliesTheBlindStatusAndSpendsItsListedManaCost", + "spellsBlindFailsOutOfRangeAndSpendsNothing", + "builderCanRollATomeOfTheBlindSpellSomewhereInARangeOfSeeds", + "spellsWeakenAppliesTheWeakenStatusAndReducesAttackAndSpendsItsListedManaCost", + "spellsWeakenFailsOutOfRangeAndSpendsNothing", + "builderCanRollATomeOfTheWeakenSpellSomewhereInARangeOfSeeds", + "spellsCleanseLiftsHostileStatusesAndDiseaseOnTheCasterAndSpendsItsListedManaCost", + "spellsCleanseWithNothingHostileStillSucceedsAndSpendsMana", + "builderCanRollATomeOfTheCleanseSpellSomewhereInARangeOfSeeds", + "spellsLevitateAppliesTheLevitateStatusToTheCasterAndSpendsItsListedManaCost", + "builderCanRollATomeOfTheLevitateSpellSomewhereInARangeOfSeeds", + "polymorphPoolExcludesTheShopkeeperAndRespectsDepth", + "polymorphTransformPicksADifferentSpeciesAndPreservesTheHpFraction", + "polymorphTransformReturnsNilWhenThePoolOffersNothingButTheCurrentSpecies", + "spellsPolymorphTransformsTheTargetAndSpendsItsListedManaCost", + "spellsPolymorphFailsOutOfRangeAndSpendsNothing", + "builderCanRollATomeOfThePolymorphSpellSomewhereInARangeOfSeeds", + "blocksCanReceiveRefusesWallsDoorsVaultsGatesBlocksAndEntities", + "blocksPushRelocatesABlockOntoPlainFloor", + "blocksPushIntoLavaSolidifiesTheCellAndConsumesTheBlock", + "blocksPushIntoAChasmFillsTheGapAndConsumesTheBlock", + "blocksPushFailsAgainstAWallOrAnotherBlockOrAnEntity", + "blocksUpdateGatesOpensOnlyWhileAPlatedBlockHoldsItAndReseals", + "movePlayerShovesABlockAheadAndTheGateItHoldsOpenReactsImmediately", + "movePlayerCannotShoveABlockIntoAWallAndDoesNotMoveEither", + "movePlayerCannotShoveOneBlockIntoAnother", + "movePlayerSwapsPlacesWithItsOwnCompanionInsteadOfAttackingIt", + "movePlayerSwapsPlacesWithAHiredHirelingToo", + "adjacentMonsterSkipsTheBondedCompanionAndFindsARealHostileInstead", + "adjacentMonsterReturnsNilWhenOnlyAnAllyStandsNextToThePlayer", + "adjacentMonsterAlsoSkipsAThrallStandingNextToThePlayer", + "choosePlayerActionNeverAttacksItsOwnBondedCompanionEvenWithNothingElseToDo", + "aStarNeverRoutesAMonsterThroughABlockedCell", + "playerPathToNeverRoutesThroughABlockedCell", + "gatesAndBlocksStayOffFloorsAboveDepthTwo", + "builderOccasionallyPlacesAGateBlockPuzzleOnceADoorwayIsAvailable", + "builderOnlyEverPlacesASolvableGatePuzzleThatNeverSealsTheOnlyRoute", + "blockPlateAndGateFieldsSurviveSerialization", + "gameBlockPuzzleStateSurvivesSaveLoad", + "prefabVaultsNeverAppearBeforeDepthThree", + "builderStampsEachHandAuthoredVaultMatchingAFreshPrefabStampOfTheSameTemplate", + "builderDiggingThroughAPrefabVaultsOuterWallOpensARouteToItsSealedInterior", + "prefabVaultFieldsSurviveSerialization", + "saveGameFnv1a32MatchesThePublishedTestVectors", + "saveGameEncodeDecodeRoundTripsAValueUnchanged", + "saveGameSaveThenLoadRoundTripsThroughARealFile", + "saveGameLoadReportsMissingRatherThanErroringOnANonexistentFile", + "saveGameDecodeRejectsTextThatIsNotValidLuaAtAll", + "saveGameDecodeDetectsATamperedPayloadViaChecksumMismatch", + "saveGameDecodeRefusesASaveFromAVersionNewerThanTheCodecSupports", + "saveGameWithNoMigrationHistoryPassesLegacyDataThroughUnchanged", + "saveGameMigrationChainAppliesEachStepInOrderStartingFromVersionOne", + "saveGameMigrationChainSkipsStepsAlreadyPastTheStoredVersion", + "metaLoadUpgradesALegacyPreEnvelopeFileWithoutLosingItsRenown", + "metaLoadStartsFreshWithoutCrashingOnACorruptedFile", + "gameLoadUpgradesALegacyPreEnvelopeSaveMissingNewerPlayerFields", + "gameLoadRaisesAClearErrorOnATruncatedSaveFileInsteadOfCrashingObscurely", + "gameLoadRaisesAClearErrorForASaveFromAFutureVersion", + "noisePropagateDecaysByExactlyOneLoudnessPerStepThroughOpenFloor", + "noisePropagateNeverCrossesASolidWallEvenWhenTheOtherSideIsCloseByEuclideanDistance", + "noisePropagateBendsAroundACornerToReachACellWithNoStraightLineAtAll", + "noisePropagateFromAWallOriginStillReachesItsWalkableNeighbours", + "noiseIntensityAtIsZeroOutOfBoundsAndWhereverTheFloodNeverReached", + "noisePropagateWithZeroOrNegativeLoudnessReachesNothing", + "gameEmitNoiseEventuallyStirsADormantMonsterWithinRangeIntoSearchingAtTheNoisesOrigin", + "gameEmitNoiseNeverStirsADormantMonsterTheFloodCannotReach", + "gameEmitNoiseNeverAffectsAMonsterThatIsAlreadyAware", + "gamePlayerAttackCanStirADormantBystanderThatIsNotEvenTheTarget", + "gameMonsterMeleeCanStirADormantBystanderTooNotJustPlayerActions", + "gameCastSpellOnlyEmitsNoiseOnASuccessfulCastNeverOnAFailedOne", + "gameDigEmitsNoiseFromTheStruckCellEvenThoughItStartsUnwalkable", + "diseaseInfectSeedsIncubationAndRefusesToStackASecondInfection", + "diseaseUnknownKeyNeverInfects", + "diseaseIsInfectedAndHasEruptedTrackIncubationVsActiveStageSeparately", + "diseaseTickCountsIncubationDownInSilenceThenErupts", + "diseaseTickMessagesAddressThePlayerInSecondPersonForEruptionDamageAndEscalation", + "diseaseTickDealsStagePotencyThroughResistancesAndEscalatesOnItsFixedSchedule", + "diseaseTickNeverEscalatesPastTheTopStage", + "diseaseAnImmuneHostTakesNoDamageButStillEscalatesOnSchedule", + "diseaseCureLiftsAnInfectionAtAnyStageAndReportsFalseWhenThereWasNothingToLift", + "diseaseStagePotencyIsZeroWhileIncubatingOrUninfected", + "gameMonsterMeleeCanInfectThePlayerViaABiteCarryingSpeciesButNeverStacksASecondInfection", + "gameMonsterMeleeNeverInfectsFromASpeciesWithNoBiteDisease", + "gameEndPlayerTurnTicksThePlayersDiseaseAndLogsItsEruption", + "gameUseItemDrinkingACurePotionLiftsTheInfectionAndIdentifiesThePotion", + "gameUseItemDrinkingACurePotionAlsoLiftsHostileStatusesNotJustDisease", + "gameUseItemDrinkingACurePotionReportsBothDiseaseAndStatusesWhenBothArePresent", + "gameUseItemDrinkingACurePotionWithNothingToCureIsHonestInTheLog", + "diseaseAndBiteDiseaseFieldsSurviveALevelSerializationRoundTrip", + "captivesEligibleAcceptsABatteredWildHostileAndRejectsATooHealthyOne", + "captivesEligibleExcludesBossesMimicsGravesNemesesAndTheVendingShopkeeper", + "captivesCanReachRespectsRangeAndLineOfSight", + "captivesValueOfMatchesKillXpAndAddsAnEliteBonus", + "captivesResolveRefusesWithNoClearThrowWithoutSpendingTheNet", + "captivesResolveWastesTheNetOnATargetStillTooHealthyToSubdue", + "captivesResolveCanThrashFreeAndStillSpendTheNet", + "captivesResolveCatchesABatteredTargetIntoACaptiveAndZeroesItsHp", + "gameCaptureAtRemovesTheCaughtMonsterFromTheLevelWithoutAwardingAKill", + "gameCaptureAtLeavesTheTargetAliveAndTheNetUnspentWhenOutOfRange", + "gameRansomCaptiveWarmsFactionStandingWithNoGoldChange", + "gameSellCaptivePaysGoldAndCoolsFactionStanding", + "gameInterrogateCaptiveRevealsEveryHiddenDoorAndGrantsEssence", + "captiveFieldsSurviveALevelSerializationRoundTrip", + "autopilotNetsABatteredAdjacentMonsterInsteadOfFinishingItInMeleeWhenCarryingANet", + "autopilotSellsAHeldCaptiveOnSight", + "builderOccasionallyPlacesANetFromDepthFive", + "netsStayOffFloorsAboveDepthFive", + "hordeBuildArenaIsFullyEnclosedWithAClearCentreReachableFromEveryCorner", + "hordeBuildArenaIsDeterministicForAFixedSeedAndDiffersAcrossSeeds", + "hordeSpawnPointsAreUniqueWalkableCellsAndAlwaysCoverAMaxWave", + "hordeCountForClimbsWithWaveThenCapsAtMaxCount", + "hordeEssenceForIsZeroBeforeTheFirstWaveAndProportionalAfter", + "hordePoolExcludesThePassiveVendingShopkeeperEvenAtAQualifyingDepth", + "hordeClearedIsVacuouslyTrueOnAnEmptyArenaAndFalseWhileAnyMonsterLives", + "hordeClearedIgnoresCarriedAlliesAndOnlyCountsHostileMonsters", + "hordeSpawnWaveNeverStacksTwoMonstersOnOneCellAndEverySpawnStartsHunting", + "gameStartHordeBeginsAtWaveOneCenteredAndWithoutAStartingReward", + "gameStartHordeCarriesEveryLivingAllyIntoTheArenaInsteadOfAbandoningThem", + "gameEndPlayerTurnStillAdvancesHordeWavesWithACarriedCompanionPresent", + "gameEndPlayerTurnAdvancesTheHordeWaveBanksEssenceAndHealsOnceEveryMonsterDies", + "gameEndPlayerTurnLeavesAnUnclearedHordeWaveUntouched", + "hordeNeverPromotesAnEliteInEitherOfTheFirstTwoWavesRegardlessOfSeed", + "hordeEventuallyPromotesElitesOnceWavesCrossTheMinimumDepth", + "branchesSeedForIsDeterministicAndVariesWithEitherInput", + "branchesBuildIsDeterministicAndGeneratesDeeperThanItsOrigin", + "branchesBuildNeverPlacesAChasmOrTheWinningAmulet", + "builderPlacesARiftShardFromDepthFourAndARiftFromDepthSix", + "riftsAndShardsStayOffFloorsAboveTheirOwnThreshold", + "riftFieldsSurviveALevelSerializationRoundTrip", + "gameEnterRiftFailsWithoutARiftUnderfootOrWithoutAShard", + "gameEnterRiftSpendsTheShardAndSwapsToTheCachedPocketFloor", + "gameDescendAndAscendAreBothBlockedWhileAcrossARift", + "gameExitRiftRestoresTheExactMainTrackLevelDepthAndPosition", + "gameReenteringAStabilizedRiftNeverSpendsASecondShard", + "gameRiftPocketFloorPersistsStateAcrossALeaveAndReturn", + "gameEnterRiftAndExitRiftBothCarryALivingCompanionAcrossTheCrossing", + "choosePlayerActionEntersAWellHealedRiftUnderfootButSkipsItWhenBadlyHurt", + "choosePlayerActionStepsThroughAndThenExitsARiftUnderAutopilot", + "renderDrawsARiftGlyphWhenVisible", + "gameSaveLoadRoundTripsAnActiveRiftCrossing", + "gameSaveLoadRoundTripsAnActiveHordeArena", + "gameSaveLoadOfAnOrdinaryRunNeverGainsAHordeField", + "phasesTickIsANoOpForAPlainMonsterOrABossStillAboveItsDesperateThreshold", + "phasesTickBracesOnceABloodiedBossCrossesDesperateAtSpikingDefenseAndConsumingTheTurn", + "phasesTickUnleashesOnTheTurnAfterBracingHittingThePlayerAndRevertingDefense", + "phasesUnleashHitsCompanionsAndHirelingsInRadiusButLeavesAWildMonsterUntouched", + "phasesUnleashHitsAReanimatedThrallInRadiusJustLikeACompanionOrHireling", + "phasesNovaFiresAtMostOncePerBossThenFallsBackToItsOrdinaryAbility", + "takeMonsterTurnSkipsAbilityAndAiWhileABossBracesOrUnleashesItsCataclysm", + "bossPhaseFieldsSurviveALevelSerializationRoundTrip", + "commandsParseSplitsAVerbAndArgsLowercasedAndTrimmed", + "commandsApplyRejectsAnUnknownVerbWithoutSpendingATurn", + "commandsApplyMovingIntoAWallFailsWithoutSpendingATurn", + "commandsApplyMovementBumpsIntoAnAdjacentHostileAsAnAttack", + "commandsApplyAttackAliasesMovementIntoAnExplicitDirection", + "commandsApplyWaitAlwaysSucceedsAndSpendsTheTurn", + "commandsApplyPickupSweepsFloorItemsAtThePlayersFeetAndSpendsTheTurn", + "commandsApplyUseDrinksAPotionByInventoryIndexAndSpendsTheTurn", + "commandsApplyItemCommandsRejectAMissingOrNonNumericIndexWithoutSpendingATurn", } for _, name in ipairs(order) do