示例#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 static int ActualSnookerBreak(CalculateSnookerBreakTotal.SnookerBall[] pots)
        {
            if (pots == null || pots.Length == 0)
            {
                return(0);
            }

            int tot = 0;

            for (int i = 0; i < pots.Length; i++)
            {
                int shot = i + 1;
                CalculateSnookerBreakTotal.SnookerBall colour = pots[i];

                bool even = shot % 2 == 0;

                if (shot <= 30)
                {
                    if (even)
                    {
                        if (colour == CalculateSnookerBreakTotal.SnookerBall.Red)
                        {
                            throw new Exception("FOUL");
                        }
                    }
                    else
                    {
                        if (colour != CalculateSnookerBreakTotal.SnookerBall.Red)
                        {
                            throw new Exception("FOUL");
                        }
                    }
                }
                else if (shot == 31)
                {
                    if (colour != CalculateSnookerBreakTotal.SnookerBall.Yellow)
                    {
                        throw new Exception("FOUL");
                    }
                }
                else if (shot == 32)
                {
                    if (colour != CalculateSnookerBreakTotal.SnookerBall.Green)
                    {
                        throw new Exception("FOUL");
                    }
                }
                else if (shot == 33)
                {
                    if (colour != CalculateSnookerBreakTotal.SnookerBall.Brown)
                    {
                        throw new Exception("FOUL");
                    }
                }
                else if (shot == 34)
                {
                    if (colour != CalculateSnookerBreakTotal.SnookerBall.Blue)
                    {
                        throw new Exception("FOUL");
                    }
                }
                else if (shot == 35)
                {
                    if (colour != CalculateSnookerBreakTotal.SnookerBall.Pink)
                    {
                        throw new Exception("FOUL");
                    }
                }
                else if (shot == 36)
                {
                    if (colour != CalculateSnookerBreakTotal.SnookerBall.Black)
                    {
                        throw new Exception("FOUL");
                    }
                }

                tot += (int)colour;
            }

            return(tot);
        }
示例#5
0
        public void BasicTestFoul()
        {
            var pots = new CalculateSnookerBreakTotal.SnookerBall[] { CalculateSnookerBreakTotal.SnookerBall.Pink, };

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