예제 #1
0
        //[TestCase(1023, 10, 100, new int[] { 2, 4, 5, 7, 9, 11, 13, 15, 16, 18})]
        //[TestCase(859, 10, 100, new int[] { 3, 5, 0, 11, 13, 0, 18, 0, 24, 26 })]
        public void TestTargetCastlesProportionally(int seed, int numCastles, int numTroops, int[] expectedResults)
        {
            var castleTargeter        = new CastleTargeter();
            var strategy              = new TargetCastlesStrategy(numCastles, numTroops, castleTargeter);
            var castlesToTarget       = castleTargeter.GetCastlesToTargetForPermuation(numCastles, seed);
            var actualTroopPlacements = strategy.GenerateSingleTroopPlacement(
                castlesToTarget,
                0,
                TroopAllocationStrategy.ProportionalDistribution,
                TroopAllocationStrategy.EvenDistribution).ToArray();

            Assert.AreEqual(expectedResults.Length, actualTroopPlacements.Length);
            for (int i = 0; i < expectedResults.Length; i++)
            {
                Assert.AreEqual(expectedResults[i], actualTroopPlacements[i]);
            }
        }
예제 #2
0
        //// only assigning points to targeted castles
        //[TestCase(1, new int[] {100, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 1, 10, 100, 0)]
        //[TestCase(560, new int[] { 0, 0, 0, 0, 33, 33, 0, 0, 0, 34 }, 21, 10, 100, 0)]
        //[TestCase(452, new int[] { 0, 0, 25, 0, 0, 0, 25, 25, 25, 0}, 27, 10, 100, 0)]
        //[TestCase(1023, new int[] { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }, 55, 10, 100, 0)]
        //// assigning points to non-targeted castles
        //[TestCase(560, new int[] { 1, 1, 1, 1, 31, 31, 1, 1, 1, 31 }, 21, 10, 100, 1)]
        public void TestTargetCastlesEvenlyStrategy(int seed, int[] expectedTroopPlacement, int expectedNumPointsTargeted, int numCastles, int numTroops,
                                                    int valueToAssignPerNonTargetedCastle)
        {
            var castleTargeter  = new CastleTargeter();
            var strategy        = new TargetCastlesStrategy(numCastles, numTroops, castleTargeter);
            var castlesToTarget = castleTargeter.GetCastlesToTargetForPermuation(numCastles, seed);
            var troopPlacements = strategy.GenerateSingleTroopPlacement(
                castlesToTarget,
                valueToAssignPerNonTargetedCastle,
                TroopAllocationStrategy.EvenDistribution,
                TroopAllocationStrategy.EvenDistribution);

            for (int i = 0; i < troopPlacements.Count; i++)
            {
                Assert.AreEqual(expectedTroopPlacement[i], troopPlacements[i]);
            }
        }