Example #1
0
        public void ThreePairsGivesThreeHundredTest()
        {
            var dices = TestUtils.GenerateDices(new[] { 1, 1, 4, 4, 5, 5 });

            Assert.AreEqual(300, DiceCombinationAnalyzer.Analyze(dices));
            // TODO: This test is not extensive. Should somehow test all possible Three Pairs
        }
Example #2
0
        public void ThreeDiceWithOnesAndFivesTest()
        {
            var dices = TestUtils.GenerateDices(new[] { 1, 1, 5 });

            Assert.AreEqual(250, DiceCombinationAnalyzer.Analyze(dices));

            dices = TestUtils.GenerateDices(new[] { 1, 5, 5 });
            Assert.AreEqual(200, DiceCombinationAnalyzer.Analyze(dices));
        }
Example #3
0
 public void ThreeOrMoreDicesWithValueOneGivesThousandPointsTest()
 {
     // Three or more dices with value one gives a score of 1000*2^(numberOfDices-3)
     for (int numberOfDices = 3; numberOfDices <= 6; numberOfDices++)
     {
         List <int> diceValues = new List <int>();
         for (int i = 1; i <= numberOfDices; i++)
         {
             diceValues.Add(1);
         }
         var dices         = TestUtils.GenerateDices(diceValues.ToArray());
         var expectedScore = 1000 * Math.Pow(2, (numberOfDices - 3));
         Assert.AreEqual(expectedScore, DiceCombinationAnalyzer.Analyze(dices));
     }
 }
Example #4
0
        public void ThreeOrMoreOfAnyValueExceptOneTest()
        {
            // Test the cases of 3, 4, 5 and 6 dices of each dice value
            for (int numberOfDices = 3; numberOfDices <= 6; numberOfDices++)
            {
                // Test all dice values except ones
                for (int diceValue = 2; diceValue <= 6; diceValue++)
                {
                    List <int> diceValues = new List <int>();

                    // Generate dices of the current dice value and number of dices
                    for (int i = 1; i <= numberOfDices; i++)
                    {
                        diceValues.Add(diceValue);
                    }
                    var dices = TestUtils.GenerateDices(diceValues.ToArray());

                    var expectedScore = (numberOfDices - 2) * 100 * diceValue;
                    Assert.AreEqual(expectedScore, DiceCombinationAnalyzer.Analyze(dices));
                }
            }
        }
Example #5
0
        public void StraightGivesSixHundredTest()
        {
            var dices = TestUtils.GenerateDices(new[] { 1, 2, 3, 4, 5, 6 });

            Assert.AreEqual(600, DiceCombinationAnalyzer.Analyze(dices));
        }
Example #6
0
        public void TwoDiceWithValueOneAndFiveTest()
        {
            var dices = TestUtils.GenerateDices(new[] { 1, 5 });

            Assert.AreEqual(150, DiceCombinationAnalyzer.Analyze(dices));
        }
Example #7
0
        public void SingleDiceWithValueFiveTest()
        {
            var dices = TestUtils.GenerateDices(new[] { 5 });

            Assert.AreEqual(50, DiceCombinationAnalyzer.Analyze(dices));
        }
Example #8
0
        public void HasAnythingThreeOfSomethingTest()
        {
            var dices = TestUtils.GenerateDices(new int[] { 2, 2, 3, 4, 6, 2 });

            Assert.IsTrue(DiceCombinationAnalyzer.HasAnything(dices));
        }
Example #9
0
        public void HasAnythingASingleFiveTest()
        {
            var dices = TestUtils.GenerateDices(new int[] { 2, 5, 3, 4, 6 });

            Assert.IsTrue(DiceCombinationAnalyzer.HasAnything(dices));
        }
Example #10
0
        public void HasNothingTest()
        {
            var dices = TestUtils.GenerateDices(new int[] { 2, 3, 3, 4, 6, 4 });

            Assert.IsFalse(DiceCombinationAnalyzer.HasAnything(dices));
        }