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"); } }
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(); }
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); } }
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"); } } }
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()); }
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); } }