def test_compareRotates_180degrees_flips(self): t1 = tiles.Tile(self.tile1) t2 = tiles.Tile(self.tile1) t1.flipHorizontal() t1.flipVertical() t2.rotate180() self.assertEqual(str(t1), str(t2))
def test_compareRotates_270degrees_3steps(self): t1 = tiles.Tile(self.tile1) t2 = tiles.Tile(self.tile1) for i in range(3): t1.rotate90() t2.rotate270() self.assertEqual(str(t1), str(t2))
def test_compareRotates_180degrees(self): t1 = tiles.Tile(self.tile1) t2 = tiles.Tile(self.tile1) for i in range(2): t1.rotate90() # print(t1) t2.rotate180() self.assertEqual(str(t1), str(t2))
def test_flipHorizontal_edgeIDs_3x3(self): t = tiles.Tile(self.tile1) t.flipHorizontal() expected = [ self.t1Sides[0], self.t1Sides[3], self.t1Sides[2], self.t1Sides[1] ] self.assertEqual(expected, t.sideIDs)
def test_flipVertical_edgeIDs_4x4(self): t = tiles.Tile(self.tile2) t.flipVertical() expected = [ self.t2Sides[2], self.t2Sides[1], self.t2Sides[0], self.t2Sides[3] ] self.assertEqual(expected, t.sideIDs)
def test_rotate270_edgeIDs_4x4(self): t = tiles.Tile(self.tile2) t.rotate270() expected = [ self.t2Sides[1], self.t2Sides[2], self.t2Sides[3], self.t2Sides[0] ] self.assertEqual(expected, t.sideIDs)
def test_rotate180_edgeIDs_3x3(self): t = tiles.Tile(self.tile1) t.rotate180() expected = [ self.t1Sides[2], self.t1Sides[3], self.t1Sides[0], self.t1Sides[1] ] self.assertEqual(expected, t.sideIDs)
def test_rotate90_corners_3x3(self): t = tiles.Tile(self.tile1) orig = str(t).split('\n') t.rotate90() newT = str(t).split('\n') self.assertEqual(orig[0][0], newT[0][-1], "Top left -> top right") self.assertEqual(orig[0][1], newT[1][-1], "Top middle -> middle right") self.assertEqual(orig[0][-1], newT[-1][-1], "Top right -> bottom right") self.assertEqual(orig[1][0], newT[0][1], "Middle left -> top middle") self.assertEqual(orig[1][1], newT[1][1], "Centre -> centre") self.assertEqual(orig[1][-1], newT[-1][1], "Middle right -> bottom middle") self.assertEqual(orig[-1][0], newT[0][0], "Bottom left -> top left") self.assertEqual(orig[-1][1], newT[1][0], "Bottom middle -> middle left") self.assertEqual(orig[-1][-1], newT[-1][0], "Bottom right -> bottom left")
def test_rotate90_corners_4x4(self): t = tiles.Tile(self.tile2) orig = str(t).split('\n') t.rotate90() newT = str(t).split('\n') self.assertEqual(orig[0][0], newT[0][-1], "Top left -> top right") self.assertEqual(orig[0][1], newT[1][-1], "Top left-middle -> above-middle right") self.assertEqual(orig[0][-1], newT[-1][-1], "Top right -> bottom right") self.assertEqual(orig[1][0], newT[0][-2], "Above-middle left -> top right-middle") self.assertEqual(orig[1][-1], newT[-1][-2], "Below-middle right -> bottom left-middle") self.assertEqual(orig[-1][0], newT[0][0], "Bottom left -> top left") self.assertEqual(orig[-1][1], newT[1][0], "Bottom middle -> middle left") self.assertEqual(orig[-1][-1], newT[-1][0], "Bottom right -> bottom left")
def test_rotate270_full_rotation_1080degrees(self): t = tiles.Tile(self.tile1) orig = str(t) for i in range(4): t.rotate270() self.assertEqual(orig, str(t))
def test_init_sideID_calculation_4x4(self): t = tiles.Tile(self.tile2) self.assertEqual(self.t2Sides, t.sideIDs)
def test_patternMatch_knownGoodAssembly_pos2(self): buffer = ["0"] buffer.extend(self.knownPuzzleSolutionOriented) tile = tiles.Tile(buffer) self.assertTrue(tile._patternMatch((1, 16), self.serpentPattern))
def test_findPatternMatches_knownGoodAssembly_match(self): buffer = ["0"] buffer.extend(self.knownPuzzleSolutionOriented) tile = tiles.Tile(buffer) matches = [m for m in tile._findPatternMatches(self.serpentPattern)] self.assertEqual(set([(2, 2), (1, 16)]), set(matches))
def test_findPatternMatches_knownGoodAssembly_count(self): buffer = ["0"] buffer.extend(self.knownPuzzleSolutionOriented) tile = tiles.Tile(buffer) matches = [m for m in tile._findPatternMatches(self.serpentPattern)] self.assertTrue(2, len(matches))
def test_count(self): buffer = ["0"] buffer.extend(self.knownPuzzleSolutionOriented) tile = tiles.Tile(buffer) self.assertEqual(303, tile.countSymbol('#'))
def test_rotate180_full_rotation_360degrees(self): t = tiles.Tile(self.tile1) orig = str(t) for i in range(2): t.rotate180() self.assertEqual(orig, str(t))
def test_flipVertical_reversible(self): t = tiles.Tile(self.tile1) orig = str(t) for i in range(2): t.flipVertical() self.assertEqual(orig, str(t))
def test_init_sideID_calculation_3x3(self): t = tiles.Tile(self.tile1) self.assertEqual(self.t1Sides, t.sideIDs)