コード例 #1
0
        public void TestAddOrRemoveCard()
        {
            Desk tempDesk1 = new Desk();
            Card tempCard  = new Card(Card.Type.Diamonds, Card.Number.Arch);

            tempDesk1.AddNewCardInColoum(0, tempCard);

            if (tempDesk1.AllCardCount != 1)
            {
                throw new Exception("Test failed");
            }

            Card card = tempDesk1.RemoveLastCardInColoum(0);

            try
            {
                tempDesk1.RemoveLastCardInColoum(0);
                throw new Exception("Test Failed");
            }
            catch (NotEnoughCardException)
            {
            }
            if (card.GetHashCode() != tempCard.GetHashCode())
            {
                throw new Exception("Test failed");
            }
        }
コード例 #2
0
        public void TestDeskCheckError()
        {
            Desk tempDesk1 = new Desk();
            int  coloum = 0, row = 0;

            for (Card.Type type = Card.Type.Diamonds; type <= Card.Type.Club; type++)
            {
                for (int i = 1; i <= 13; i++)
                {
                    tempDesk1.AddNewCardInColoum(coloum, new Card(type, (Card.Number)i));
                    coloum++;
                    if (coloum == tempDesk1.AllCardOnDesk.ColoumCard.GetLength(0))
                    {
                        row++;
                        coloum = 0;
                    }
                }
            }
            tempDesk1.CheckError();

            Card tempCard = tempDesk1.RemoveLastCardInColoum(0);

            try
            {
                tempDesk1.CheckError();
                throw new Exception("Test failed");
            }
            catch (ErrorInDeskException)
            {
            }
            tempDesk1.AllCardOnDesk.FreeCard[0] = tempCard;
            tempDesk1.CheckError();

            Desk tempDesk2 = new Desk();

            for (Card.Type type = Card.Type.Diamonds; type <= Card.Type.Spade; type++)
            {
                for (int i = 1; i <= 13; i++)
                {
                    tempDesk2.AddNewCardInColoum(coloum, new Card(type, (Card.Number)i));
                    coloum++;
                    if (coloum == tempDesk2.AllCardOnDesk.ColoumCard.GetLength(0))
                    {
                        row++;
                        coloum = 0;
                    }
                }
            }
            for (Card.Number i = Card.Number.Arch; i <= Card.Number.King; i++)
            {
                tempDesk2.AddNewCardInSortedCard(new Card(Card.Type.Club, i), true);
            }

            tempDesk2.CheckError();
        }
コード例 #3
0
        public void TestInfer_SolveColoumCardDesk_Sub()
        {
            Desk tempDesk1 = new Desk();

            tempDesk1.AllCardOnDesk.SortedCard[0] = new Card(Card.Type.Diamonds, Card.Number.King);
            tempDesk1.AllCardOnDesk.SortedCard[1] = new Card(Card.Type.Heart, Card.Number.Queen);
            tempDesk1.AllCardOnDesk.SortedCard[2] = new Card(Card.Type.Spade, Card.Number.Jack);
            tempDesk1.AllCardOnDesk.SortedCard[3] = new Card(Card.Type.Club, Card.Number.Ten);

            tempDesk1.AddNewCardInColoum(1, new Card(Card.Type.Heart, Card.Number.King));
            tempDesk1.AddNewCardInColoum(2, new Card(Card.Type.Spade, Card.Number.King));
            tempDesk1.AddNewCardInColoum(3, new Card(Card.Type.Club, Card.Number.King));
            tempDesk1.AddNewCardInColoum(2, new Card(Card.Type.Spade, Card.Number.Queen));
            tempDesk1.AddNewCardInColoum(3, new Card(Card.Type.Club, Card.Number.Queen));
            tempDesk1.AddNewCardInColoum(3, new Card(Card.Type.Club, Card.Number.Jack));


            InferManager.GetInstance().ClearInferData();
            InferManager.GetInstance().SetStartDesk(tempDesk1);
            var result = InferManager.GetInstance().StartInfer();

            if (!result.IsSolved)
            {
                throw new Exception(result.Message);
            }
        }
コード例 #4
0
        public void TestCountSortedCardInColoum()
        {
            Desk tempDesk1 = new Desk();
            bool sign      = true;

            for (Card.Number i = Card.Number.King; i >= Card.Number.Arch; i--)
            {
                tempDesk1.AddNewCardInColoum(0, new Card(sign ? Card.Type.Diamonds : Card.Type.Spade, i));
                sign = !sign;
            }
            sign = false;
            for (Card.Number i = Card.Number.King; i >= Card.Number.Arch; i--)
            {
                tempDesk1.AddNewCardInColoum(1, new Card(sign ? Card.Type.Diamonds : Card.Type.Spade, i));
                sign = !sign;
            }
            sign = true;
            for (Card.Number i = Card.Number.King; i >= Card.Number.Arch; i--)
            {
                tempDesk1.AddNewCardInColoum(2, new Card(sign ? Card.Type.Heart : Card.Type.Club, i));
                sign = !sign;
            }
            sign = false;
            for (Card.Number i = Card.Number.King; i >= Card.Number.Arch; i--)
            {
                tempDesk1.AddNewCardInColoum(3, new Card(sign ? Card.Type.Heart : Card.Type.Club, i));
                sign = !sign;
            }

            for (int coloumIndex = 0; coloumIndex < 2; coloumIndex++)
            {
                if (tempDesk1.GetSortedCardCountInColoum(coloumIndex) != 12)
                {
                    throw new Exception("Test Failed");
                }
            }
        }
コード例 #5
0
        public string GenerateSampleDeskJson()
        {
            Desk sampleDesk = new Desk();
            int  coloum = 0, row = 0;

            for (Card.Type type = Card.Type.Diamonds; type <= Card.Type.Club; type++)
            {
                for (int i = 1; i <= 13; i++)
                {
                    sampleDesk.AddNewCardInColoum(coloum, new Card(type, (Card.Number)i));
                    coloum++;
                    if (coloum == sampleDesk.AllCardOnDesk.ColoumCard.GetLength(0))
                    {
                        row++;
                        coloum = 0;
                    }
                }
            }
            Console.WriteLine(sampleDesk.Pretty());
            return(sampleDesk.GetJson());
        }
コード例 #6
0
        public void TestInfer_SolveColoumCardDesk()
        {
            Desk tempDesk1 = new Desk();

            for (int coloumIndex = 0; coloumIndex < 4; coloumIndex++)
            {
                for (Card.Number i = Card.Number.King; i >= Card.Number.Arch; i--)
                {
                    tempDesk1.AddNewCardInColoum(coloumIndex, new Card((Card.Type)coloumIndex + 1, i));
                }
            }

            InferManager.GetInstance().ClearInferData();
            InferManager.GetInstance().SetStartDesk(tempDesk1);
            var result = InferManager.GetInstance().StartInfer();

            if (!result.IsSolved)
            {
                throw new Exception(result.Message);
            }
        }