public void TakeMoveSoftHandTest()
        {
            StandartBot bot = new StandartBot();

            ToolKit.Hand hand = new ToolKit.Hand();

            hand.Cards = NewSameCards(ToolKit.CardPoints.Ace);
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Four));
            ToolKit.Card dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Five);
            Assert.AreEqual(ToolKit.GamingState.Double, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Ace);
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Four));
            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Ace);
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Ace);
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Six));
            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Five);
            Assert.AreEqual(ToolKit.GamingState.Stand, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Ace);
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Six));
            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Nine);
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Ace);
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Seven));
            Assert.AreEqual(ToolKit.GamingState.Stand, bot.TakeMove(hand, dealearCard));
        }
        public void TakeMoveSplitTest()
        {
            StandartBot bot = new StandartBot();

            bot.State = PlayerStructure.PlayerState.Stop;
            ToolKit.Card dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Ace);
            Assert.AreEqual(ToolKit.GamingState.Stand, bot.TakeMove(bot.Hands[0], dealearCard));
            bot.State = PlayerStructure.PlayerState.Playing;

            ToolKit.Hand hand = new ToolKit.Hand();
            hand.Cards = NewSameCards(ToolKit.CardPoints.Five);
            Assert.AreEqual(ToolKit.GamingState.Double, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Four);
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Five);
            Assert.AreEqual(ToolKit.GamingState.Split, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Nine);
            Assert.AreEqual(ToolKit.GamingState.Split, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Ace);
            Assert.AreEqual(ToolKit.GamingState.Stand, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Ten);
            Assert.AreEqual(ToolKit.GamingState.Stand, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Eight);
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Ten);
            Assert.AreEqual(ToolKit.GamingState.Split, bot.TakeMove(hand, dealearCard));

            hand.Cards  = NewSameCards(ToolKit.CardPoints.Seven);
            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Ace);
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Two);
            Assert.AreEqual(ToolKit.GamingState.Split, bot.TakeMove(hand, dealearCard));
        }
        public void TakeMoveHardHandTest()
        {
            StandartBot bot = new StandartBot();

            ToolKit.Hand hand        = new ToolKit.Hand();
            ToolKit.Card dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Two);

            hand.Cards = NewSameCards(ToolKit.CardPoints.Two);
            hand.Cards.AddRange(NewSameCards(ToolKit.CardPoints.Two));
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            hand.Cards = NewSameCards(ToolKit.CardPoints.Two);
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Five));
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Six);
            Assert.AreEqual(ToolKit.GamingState.Double, bot.TakeMove(hand, dealearCard));

            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Two));
            Assert.AreEqual(ToolKit.GamingState.Double, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Ace);
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            hand.Cards.RemoveAt(hand.Cards.Count - 2);
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Six));
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Six);
            Assert.AreEqual(ToolKit.GamingState.Stand, bot.TakeMove(hand, dealearCard));

            hand = new ToolKit.Hand();
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Ten));
            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Six));
            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Ten);
            Assert.AreEqual(ToolKit.GamingState.Surrender, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Seven);
            Assert.AreEqual(ToolKit.GamingState.Hit, bot.TakeMove(hand, dealearCard));

            dealearCard = new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Six);
            Assert.AreEqual(ToolKit.GamingState.Stand, bot.TakeMove(hand, dealearCard));

            hand.Cards.Add(new ToolKit.Card(ToolKit.Suits.Heart, ToolKit.CardPoints.Two));
            Assert.AreEqual(ToolKit.GamingState.Stand, bot.TakeMove(hand, dealearCard));
        }