コード例 #1
0
        public void BasicTestInvalidOrder()
        {
            var pots = new CalculateSnookerBreakTotal.SnookerBall[]
            {
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Yellow, CalculateSnookerBreakTotal.SnookerBall.Brown,
                CalculateSnookerBreakTotal.SnookerBall.Green, CalculateSnookerBreakTotal.SnookerBall.Pink,
                CalculateSnookerBreakTotal.SnookerBall.Blue,
                CalculateSnookerBreakTotal.SnookerBall.Black,
            };

            Assert.Throws <Exception>(() => { CalculateSnookerBreakTotal.SumBreak(pots); });
        }
コード例 #2
0
        public void SoClose()
        {
            var pots = new CalculateSnookerBreakTotal.SnookerBall[]
            {
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black, CalculateSnookerBreakTotal.SnookerBall.Red,
                CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Yellow, CalculateSnookerBreakTotal.SnookerBall.Green,
                CalculateSnookerBreakTotal.SnookerBall.Brown, CalculateSnookerBreakTotal.SnookerBall.Blue,
                CalculateSnookerBreakTotal.SnookerBall.Pink,
            };
            int tot = CalculateSnookerBreakTotal.SumBreak(pots);

            Assert.AreEqual(140, tot);
        }
コード例 #3
0
        public void BasicTest()
        {
            var pots = new CalculateSnookerBreakTotal.SnookerBall[]
            {
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Black,
                CalculateSnookerBreakTotal.SnookerBall.Red, CalculateSnookerBreakTotal.SnookerBall.Pink
            };
            int tot = CalculateSnookerBreakTotal.SumBreak(pots);

            Assert.AreEqual(15, tot);
        }
コード例 #4
0
        public void RandomTests()
        {
            var r = new Random();

            for (int i = 0; i < 50; i++)
            {
                var pots = new List <CalculateSnookerBreakTotal.SnookerBall>();

                int length = (r.Next() % 36) + 1;
                for (int j = 0; j < length; j++)
                {
                    int  shot = j + 1;
                    bool even = shot % 2 == 0;

                    // 50/50 chance for potting a red on odd go...
                    if (shot <= 30 && !even)
                    {
                        bool isRed = r.Next() % 2 == 0;
                        if (isRed)
                        {
                            pots.Add(CalculateSnookerBreakTotal.SnookerBall.Red);
                        }
                        else
                        {
                            var pot = (CalculateSnookerBreakTotal.SnookerBall)((r.Next() % 6) + 2);
                            pots.Add(pot);
                        }
                    }
                    else
                    {
                        var pot = (CalculateSnookerBreakTotal.SnookerBall)((r.Next() % 7) + 1);
                        pots.Add(pot);
                    }
                }

                try
                {
                    int expected = ActualSnookerBreak(pots.ToArray());
                    int actual   = CalculateSnookerBreakTotal.SumBreak(pots.ToArray());

                    Assert.AreEqual(expected, actual);
                }
                catch
                {
                    Assert.Throws <Exception>(() => { CalculateSnookerBreakTotal.SumBreak(pots.ToArray()); });
                }
            }
        }
コード例 #5
0
        public void BasicTestFoul()
        {
            var pots = new CalculateSnookerBreakTotal.SnookerBall[] { CalculateSnookerBreakTotal.SnookerBall.Pink, };

            Assert.Throws <Exception>(() => { CalculateSnookerBreakTotal.SumBreak(pots); });
        }