def test_g73_trian_lower(self): Figure.rectangle = Rectangle() # Сразу создаем прямоугольник # Сначала делаем отрезок t = Segment(R2Point(-1.0, -1.0), R2Point(1.0, 1.0)) # Соединяем с третьей точкой -> Получаем треугольник t = t.add(R2Point(1.0, -1.0)) assert t.g73() == approx(2.0)
class TestSegment: # Инициализация (выполняется для каждого из тестов класса) def setup_method(self): self.f = Segment(R2Point(0.0, 0.0), R2Point(1.0, 0.0)) # Двуугольник является фигурой def test_figure(self): assert isinstance(self.f, Figure) # Конструктор порождает экземпляр класса Segment (двуугольник) def test_segment(self): assert isinstance(self.f, Segment) # Периметр двуугольника равен удвоенной длине отрезка def test_perimeter(self): assert self.f.perimeter() == approx(2.0) # Площадь двуугольника нулевая def test_аrea(self): assert self.f.area() == 0.0 # При добавлении точки двуугольник может не измениться def test_add1(self): assert self.f.add(R2Point(0.5, 0.0)) is self.f # При добавлении точки двуугольник может превратиться в другой двуугольник def test_add2(self): assert isinstance(self.f.add(R2Point(2.0, 0.0)), Segment) # При добавлении точки двуугольник может превратиться в треугольник def test_add2(self): assert isinstance(self.f.add(R2Point(0.0, 1.0)), Polygon)
def test_g73_the_same_square(self): Figure.rectangle = Rectangle() # Сразу создаем прямоугольник # Сначала делаем отрезок t = Segment(R2Point(-1.0, -1.0), R2Point(1.0, -1.0)) # Соединяем с третьей точкой -> Получаем треугольник t = t.add(R2Point(1.0, 1.0)) # Соединяем с четвертой точкой -> Получаем квадрат (точки совпадают с вершинам "прямоугольника" по умолчанию) t = t.add(R2Point(-1.0, 1.0)) assert t.g73() == approx(4.0)
def test_g73_line_up(self): Figure.rectangle = Rectangle() # Сразу создаем прямоугольник # Сначала делаем отрезок t = Segment(R2Point(-1.0, 0.5), R2Point(1.0, 0.5)) # Соединяем с третьей точкой -> Получаем треугольник t = t.add(R2Point(1.0, 1.0)) # Соединяем с четвертой точкой -> Получаем полосочку вверху нашего квадрата t = t.add(R2Point(-1.0, 1.0)) # Общая площадь равна площади полоски, т.е. тоже единица assert t.g73() == approx(1.0)
def test_g73_small_square_in(self): Figure.rectangle = Rectangle() # Сразу создаем прямоугольник # Сначала делаем отрезок t = Segment(R2Point(-0.5, -0.5), R2Point(0.5, -0.5)) # Соединяем с третьей точкой -> Получаем треугольник t = t.add(R2Point(0.5, 0.5)) # Соединяем с четвертой точкой -> Получаем маленький квадратик внутри нашего "прямоугольника" t = t.add(R2Point(-0.5, 0.5)) # Общая площадь равна площади всей замкнутой оболочки, т.е. единицы (всего квадратика) assert t.g73() == approx(1.0)
def test_g5(self): t = Segment(R2Point(-1.0, 0.0), R2Point(1.0, 0.0)) t = t.add(R2Point(0.0, 1.0)) t = t.add(R2Point(0.0, -1.0)) t = t.add(R2Point(1.0, 1.0)) t = t.add(R2Point(1.0, -1.0)) t = t.add(R2Point(-1.0, 1.0)) t = t.add(R2Point(-1.0, -1.0)) t = t.add(R2Point(3.0, -1.0)) assert t.g() == approx(3.0 * sqrt(2.0) + sqrt(10.0))
def setup_method(self): self.f = Segment(R2Point(0.0, 0.0), R2Point(1.0, 0.0)) Figure.fixed_point = R2Point(0.5, 0.0)
def test_g3(self): t = Segment(R2Point(-1.0, 0.0), R2Point(1.0, 0.0)) t = t.add(R2Point(0.0, 1.0)) t = t.add(R2Point(0.0, -1.0)) t = t.add(R2Point(1.0, 1.0)) assert t.g() == approx(4.0 + sqrt(2.0))
def test_g1(self): t = Segment(R2Point(-1.0, 0.0), R2Point(1.0, 0.0)) t = t.add(R2Point(0.0, 1.0)) assert t.g() == approx(3.0)
def setup_method(self): self.f = Segment(R2Point(0.0, 0.0), R2Point(1.0, 0.0))