public void BattleSco3() { var battleBehavior = new BattleBehaviorScoOriginal(OutputHelper.ToLogger <IBattleBehavior>()); int attackerCount = 1000; var attackersSingle = new List <BtlUnit> { new BtlUnit { UnitDefId = Id.UnitDef("unit1"), Hitpoints = 10, Attack = 1, Defense = 0, Count = attackerCount } }; // same number of units as attackersSingle, but split up in multiple units var attackersMulti = new List <BtlUnit>( Enumerable.Repeat <BtlUnit>(new BtlUnit { UnitDefId = Id.UnitDef("unit1"), Hitpoints = 10, Attack = 1, Defense = 0, Count = 1 }, attackerCount) ); var defenders = new List <BtlUnit> { new BtlUnit { UnitDefId = Id.UnitDef("unit1"), Hitpoints = 1000, Attack = 0, Defense = 100, Count = 10 } }; var result1 = battleBehavior.CalculateResult(attackersSingle, defenders); Assert.Equal(5, result1.DefendingUnitsDestroyed.Sum(x => x.Count)); Assert.Equal(550, result1.AttackingUnitsDestroyed.Sum(x => x.Count)); // should yield the same result var result2 = battleBehavior.CalculateResult(attackersMulti, defenders); Assert.Equal(5, result2.DefendingUnitsDestroyed.Sum(x => x.Count)); Assert.Equal(550, result2.AttackingUnitsDestroyed.Sum(x => x.Count)); }
public void BattleSco2() { var battleBehavior = new BattleBehaviorScoOriginal(OutputHelper.ToLogger <IBattleBehavior>()); var attackers = new List <BtlUnit> { new BtlUnit { UnitDefId = Id.UnitDef("unit1"), Hitpoints = 100, Attack = 20, Defense = 10, Count = 10 } }; var defenders = new List <BtlUnit> { new BtlUnit { UnitDefId = Id.UnitDef("unit1"), Hitpoints = 100, Attack = 10, Defense = 10, Count = 10 } }; var result = battleBehavior.CalculateResult(attackers, defenders); Assert.Equal(10, result.DefendingUnitsDestroyed.Sum(x => x.Count)); Assert.Equal(2, result.AttackingUnitsDestroyed.Sum(x => x.Count)); }
public void BattleScoMarineVsSiegeTanks() { var battleBehavior = new BattleBehaviorScoOriginal(OutputHelper.ToLogger <IBattleBehavior>()); var attackers = new List <BtlUnit> { new BtlUnit { UnitDefId = Id.UnitDef("spacemarine"), Hitpoints = 60, Attack = 2, Defense = 4, Count = 100 } }; var defenders = new List <BtlUnit> { new BtlUnit { UnitDefId = Id.UnitDef("siegetank"), Hitpoints = 130, Attack = 10, Defense = 40, Count = 3 } }; var result = battleBehavior.CalculateResult(attackers, defenders); Assert.Equal(3, result.DefendingUnitsDestroyed.Sum(x => x.Count)); Assert.Equal(1, result.AttackingUnitsDestroyed.Sum(x => x.Count)); }