/** * @test * @depends I_can_get_compatibility_to_all_combat_actions */ public function Combinations_are_same_from_both_sides() { $codes = CombatActionCode::getPossibleValues(); $codes = array_merge($codes, MeleeCombatActionCode::getMeleeOnlyCombatActionCodes()); $codes = array_merge($codes, RangedCombatActionCode::getRangedOnlyCombatActionCodes()); $combatActionsCompatibilityTable = new CombatActionsCompatibilityTable(); foreach ($codes as $someCode) { foreach ($codes as $anotherCode) { self::assertSame($combatActionsCompatibilityTable->getValue($someCode, $anotherCode), $combatActionsCompatibilityTable->getValue($anotherCode, $someCode), "'{$someCode}' x '{$anotherCode}' do not match from both sides"); } } }
/** * @test */ public function I_can_get_melee_only_codes() { $expectedMeleeOnly = array_diff(array_values((new \ReflectionClass(MeleeCombatActionCode::class))->getConstants()), CombatActionCode::getPossibleValues()); self::assertSame($expectedMeleeOnly, MeleeCombatActionCode::getMeleeOnlyCombatActionCodes()); }