コード例 #1
0
 def test_recalculateUnavailableSquares_A1C1noSquaresInResult_size13(self):
     queenSolver = QueenSolver()
     square = Square(ord('A'), 1)
     queenSolver.addSquareToResults(square)
     square = Square(ord('C'), 1)
     queenSolver.addSquareToResults(square)
     queenSolver.recalculateUnavailableSquares()
     self.assertEqual(len(queenSolver.unavailableSquare), 13)
コード例 #2
0
 def test_checkUnavailableSquare_UnavailableSquaresEqualToPassed_returnsTrue(
         self):
     queenSolver = QueenSolver()
     square = Square(ord('A'), 1)
     queenSolver.addUnavailableSquare(square)
     square2 = Square(ord('A'), 1)
     isUnavailable = queenSolver.checkUnavailableSquare(square2)
     self.assertTrue(isUnavailable)
コード例 #3
0
 def test_getNextAvailableSquare_AllAvailableRanksFirstIsUnavailableSquare_returnsTheSecondRank(
         self):
     queenSolver = QueenSolver()
     availableRanks = deque([1, 2, 3, 4, 5, 6, 7, 8])
     discardedRanks = list()
     queenSolver.addUnavailableSquare(Square(ord('A'), 1))
     possibleRank, square = queenSolver.getNextAvailableSquare(
         ord('A'), availableRanks, discardedRanks)
     self.assertEqual(len(availableRanks), 6)
     self.assertEqual(len(discardedRanks), 1)
     self.assertEqual(discardedRanks[0], 1)
     self.assertEqual(possibleRank, 2)
     self.assertEqual(square, Square(ord('A'), 2))
コード例 #4
0
 def test_getNextAvailableSquare_AllAvailableRanksNoUnavailableSquare_returnsTheFirstRank(
         self):
     queenSolver = QueenSolver()
     availableRanks = deque([1, 2, 3, 4, 5, 6, 7, 8])
     discardedRanks = list()
     possibleRank, square = queenSolver.getNextAvailableSquare(
         ord('A'), availableRanks, discardedRanks)
     self.assertEqual(possibleRank, 1)
     self.assertEqual(square, Square(ord('A'), 1))
コード例 #5
0
 def test_checkUnavailableSquare_SeverUnavailableSquaresOneEqualToPassed_returnsTrue(
         self):
     queenSolver = QueenSolver()
     square = Square(ord('A'), 1)
     queenSolver.addUnavailableSquare(square)
     square = Square(ord('B'), 2)
     queenSolver.addUnavailableSquare(square)
     square = Square(ord('C'), 3)
     queenSolver.addUnavailableSquare(square)
     square = Square(ord('C'), 4)
     queenSolver.addUnavailableSquare(square)
     square = Square(ord('D'), 5)
     queenSolver.addUnavailableSquare(square)
     square2 = Square(ord('C'), 4)
     isUnavailable = queenSolver.checkUnavailableSquare(square2)
     self.assertTrue(isUnavailable)
コード例 #6
0
 def test_addSquareToResults_resultsWasEmpty_resultsHasOneComponent(self):
     queenSolver = QueenSolver()
     squareToAdd = Square(ord('A'), 1)
     queenSolver.addSquareToResults(squareToAdd)
     self.assertEqual(len(queenSolver.results), 1)
     self.assertEqual(queenSolver.results[0], squareToAdd)
コード例 #7
0
 def test_equalitySquares_SquaresHaveTheSameContent_TheyAreEqual(self):
     square = Square(ord('A'), 1)
     square2 = Square(ord('A'), 1)
     self.assertTrue(square == square2)
     self.assertTrue(hash(square) == hash(square2))
コード例 #8
0
 def test_checkUnavailableSquare_NoUnavailableSquares_returnsFalse(self):
     queenSolver = QueenSolver()
     square = Square(ord('A'), 1)
     isUnavailable = queenSolver.checkUnavailableSquare(square)
     self.assertFalse(isUnavailable)
コード例 #9
0
 def test_squareInSet_DifferentSquares_ReturnsFalse(self):
     setToCheck = set()
     square = Square(ord('A'), 1)
     square2 = Square(ord('A'), 2)
     setToCheck.add(square)
     self.assertFalse(square2 in setToCheck)
コード例 #10
0
 def test_squareInSet_SquareWithSameContentIsInSet_ReturnsTrue(self):
     setToCheck = set()
     square = Square(ord('A'), 1)
     square2 = Square(ord('A'), 1)
     setToCheck.add(square)
     self.assertTrue(square2 in setToCheck)
コード例 #11
0
 def test_squareInSet_SameSquareObjectIsInSet_ReturnsTrue(self):
     setToCheck = set()
     square = Square(ord('A'), 1)
     setToCheck.add(square)
     self.assertTrue(square in setToCheck)
コード例 #12
0
 def test_equalitySquares_SquaresHaveDifferentContent_TheyAreDifferent(
         self):
     square = Square(ord('A'), 1)
     square2 = Square(ord('A'), 2)
     self.assertFalse(square == square2)
     self.assertFalse(hash(square) == hash(square2))
コード例 #13
0
 def test_addDiagonalsToUnavailable_C4_11Unavailable(self):
     queenSolver = QueenSolver()
     queenSolver.addDiagonalsToUnavailable(Square(ord('C'), 4))
     self.assertEqual(len(queenSolver.unavailableSquare), 11)
コード例 #14
0
 def test_addDiagonalsToUnavailable_H8_7Unavailable(self):
     queenSolver = QueenSolver()
     queenSolver.addDiagonalsToUnavailable(Square(ord('H'), 8))
     self.assertEqual(len(queenSolver.unavailableSquare), 7)
コード例 #15
0
 def test_equalitySquares_SquaresAreTheSameObject_TheyAreEqual(self):
     square = Square(ord('A'), 1)
     self.assertTrue(square == square)
     self.assertTrue(hash(square) == hash(square))
コード例 #16
0
 def test_removeLatestSquare_resultsHadOneEntry_resultsHasNoEntries(self):
     queenSolver = QueenSolver()
     queenSolver.addSquareToResults(Square(ord('A'), 1))
     self.assertEqual(len(queenSolver.results), 1)
     queenSolver.removeLatestSquare()
     self.assertEqual(len(queenSolver.results), 0)