def test_add_square(): """ Проверка работы метода сложения площадей """ square1 = Square('name1', 1, 1, 3, 3) square2 = Square('name2', 1, 1, 2, 2) assert square1.add_square(square2) == 5
def test_parse(self): p = Square.parse({'x': 1, 'y': 2, 'size': 3}, {}, Color("#123456")) self.assertEqual(p.x, 1) self.assertEqual(p.y, 2) self.assertEqual(p.width, 3) self.assertEqual(p.height, 3) self.assertEqual(p.color, Color("#123456"))
def test_diffrent_color_place(self): p = Square.parse({ 'x': 1, 'y': 2, 'size': 3, 'color': "(0, 255, 0)" }, {}, Color("#123456")) self.assertEqual(p.color, Color("#00ff00")) p = Square.parse({ 'x': 1, 'y': 2, 'size': 3, 'color': "cos" }, {"cos": "#00ff00"}, Color("#123456")) self.assertEqual(p.color, Color("#00ff00"))
def move(array, coord_fig, coord_square, consume): #consume указывает ход с поеданием или без #стремная функция, ее точно нужно как-то переделать #просто нужно постоянно отслеживать какие поля находятся под ударом, эта информация нужна для ходов королей, а здесь это почти не учтено x0, y0 = coord_fig x1, y1 = coord_square if (consume == 0) or (consume == 1 and array[y1][x1].name != "King"): array[y1][x1] = array[y0][x0] #if <функция, определяющая бьется ли поле, с которого ушла фигура, для короля противника>: if False: #False я поставил, чтобы программа запускалась, т.к. функция выше не написана, допустим, что поле, с которого ушла фигура не бьется для короля противника if array[y0][x0].color == "White": array[y0][x0] = Square(0, 1) else: array[y0][x0] = Square(1, 0) else: array[y0][x0] = Square(0, 0) else: #шах True return
def load_figures(json_figures): figs = [] for fig in json_figures: t = fig['type'] if t == "point": figs.append(Point(int(fig['x']), int(fig['y']))) elif t == "polygon": figs.append(Polygon(fig['points'])) elif t == "rectangle": figs.append( Rectangle(int(fig['x']), int(fig['y']), int(fig['width']), int(fig['height']))) elif t == "square": figs.append(Square(int(fig['x']), int(fig['y']), int(fig['size']))) elif t == "circle": figs.append( Circle(int(fig['x']), int(fig['y']), int(fig['radius']))) if "color" in fig: figs[-1].color = fig['color'] return figs
def test_create_square(): """Тест создания квадрата""" square = Square(a=10) assert square.name == 'Square'
def test_add_areas_error(): """Тест вызова исключения с невалидными параметрами""" var = 10 square = Square(a=10) with pytest.raises(AttributeError): square.add_area(var)
def test_add_areas(): """Тест вычисления суммы площадей двух фигур""" square = Square(a=10) assert square.add_area(square) == 200
def test_square_area(): """Тест вычисления площади четырехугольника""" square = Square(a=10) assert square.find_area() == 100
def test_square_perimeter(): """Тест вычисления периметра квадрата""" square = Square(a=10) assert square.find_perimeter() == 40
from figures import Rectangle, Square, Circle rect_1 = Rectangle(15, 12) rect_2 = Rectangle(17, 5) print(rect_1.get_area(), rect_2.get_area()) square_1 = Square(5) square_2 = Square(11) print(square_1.get_area(), square_2.get_area()) circle_1 = Circle(15) circle_2 = Circle(9) print(circle_1.get_area(), circle_2.get_area()) figures = [rect_1, rect_2, square_1, square_2, circle_1, circle_2] for figure in figures: print(figure.get_area())
def test_errors(self): with self.assertRaises(ValueError): Square.parse({'y': 2, 'size': 3}, {}, Color("#123456")) Square.parse({'xp': 1, 'y': 2, 'size': 3}, {}, Color("#123456")) Square.parse({'x': 1, 'size': 3}, {}, Color("#123456")) Square.parse({'x': 1, 'y': 2}, {}, Color("#123456")) Square.parse({'x': 1, 'y': 2, 'size': 3}, {}, Color("fajny")) Square.parse({ 'x': 1, 'y': 2, 'size': 3, 'color': "nic" }, {"cos": "#00ff00"}, Color("#123456")) with self.assertRaises(TypeError): Square.parse({'x': "", 'y': 2, 'size': 3}, {}, Color("#123456")) Square.parse({'x': 1, 'y': {}, 'size': 3}, {}, Color("#123456")) Square.parse({'x': 1, 'y': 2, 'size': 1.0}, {}, Color("#123456")) Square.parse({'x': 1, 'y': 2, 'size': 3}, {}, 1)
from figures import Rectangle, Square, Circle #прямоугольники rect1 = Rectangle(2, 3) rect2 = Rectangle(3, 4) #штаны спанчбоба square1 = Square(5) square2 = Square(6) #окружности circle1 = Circle(6) circle2 = Circle(7) figures = [rect1, square1, circle1, rect2, circle2, square2] for figure in figures: if isinstance(figure, Rectangle): print(f"Figure Rectangle with area {figure.get_area()}") elif isinstance(figure, Square): print(f"Figure Square with area {figure.get_area()}") elif isinstance(figure, Circle): print(f"Figure Circle with area {figure.get_area()}") else: print("Error in head)")
from figures import Rectangle, Square, Circle #прямоугольники rect1 = Rectangle(2, 3, 4, 5) rect2 = Rectangle(3, 4, 5, 6) #штаны спанчбоба square1 = Square(1, 2, 5) square2 = Square(3, 4, 6) #окружности circle1 = Circle(10, 11, 6) circle2 = Circle(12, 13, 7) figures_ = [rect1, square1, circle1, rect2, circle2, square2] for figure in figures_: if isinstance(figure, Rectangle): #print(f"Figure Rectangle with area {figure.get_area()} & coordinates {figure.get_coordinates()}") print(figure.get_string()) elif isinstance(figure, Square): #print(f"Figure Rectangle with area {figure.get_area()} & coordinates {figure.get_coordinates()}") print(figure.get_string()) elif isinstance(figure, Circle): #print(f"Figure Rectangle with area {figure.get_area()} & coordinates {figure.get_coordinates()}") print(figure.get_string()) else: print("Error in head)")
def test_name(name): """ Проверка на корректность заданного имени """ square = Square(name, 1, 1, 3, 3) assert square.name == name
from figures import Rectangle, Square, Circle if __name__ == '__main__': print(Rectangle(10, 5, 'Blue')) print(Square(7, 'Green')) print(Circle(3, 'Yellow'))
def test_angles(): """ Проверка на корректность количества углов """ square = Square('name', 1, 1, 2, 2) assert square.angles == 4
def test_perimeter(): """ Проверка на корректность вычисления периметра """ square = Square('name', 1, 1, 4, 4) assert square.perimeter == 12
def test_area(): """ Проверка на корректность вычисления площади """ square = Square('name', 1, 1, 4, 4) assert square.area == 9
from figures import Rectangle, Square, Circle rect_1 = Rectangle(3, 4) rect_2 = Rectangle(12, 5) #вывод площади наших двух прямоугольников print(rect_1.get_area_rectangle()) print(rect_2.get_area_rectangle()) print("\n") square_1 = Square(10) square_2 = Square(6) print(square_1.get_area_square(), square_2.get_area_square()) print("\n") circ_1 = Circle(25) circ_2 = Circle(11) print(circ_1.get_area_circle(), circ_2.get_area_circle()) print("\n") figures = [rect_1, rect_2, square_1, square_2, circ_1, circ_2] for figure in figures: if isinstance(figure, Square): print("Square: " + str(figure.get_area_square())) elif isinstance(figure, Rectangle): print("Rectangle: " + str(figure.get_area_rectangle())) elif isinstance(figure, Circle): print("Circle: " + str(figure.get_area_circle()))
from figures import Rectangle, Square, Circle rect_1 = Rectangle(3, 4) rect_2 = Rectangle(12, 5) print(f"Площадь 1го прямоугольника: {rect_1.getArea()}") print(f"Площадь 2го прямоугольника: {rect_2.getArea()}") square_1 = Square(5) square_2 = Square(10) print(f"\nПлощадь 1го квадрата: {square_1.getSquareArea()}") print(f"Площадь 2го квадрата: {square_2.getSquareArea()}") circle_1 = Circle(3) circle_2 = Circle(4) print(f"\nПлощадь 1го круга: {circle_1.getArea()}") print(f"Площадь 2го круга: {circle_2.getArea()}") my_figures = [rect_1, rect_2, square_1, square_2, circle_1, circle_2] print("\nПлощади всех имеющихся фигур:") for elem in my_figures: if isinstance(elem, Square): print(elem.getSquareArea()) else: print(elem.getArea())