Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
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)
Exemplo n.º 4
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)
Exemplo n.º 5
0
class TestSegment:

    # Инициализация (выполняется для каждого из тестов класса)
    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_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_add3(self):
        assert isinstance(self.f.add(R2Point(0.0, 1.0)), Polygon)

    # Функция `g` вычисляется корректно
    def test_g(self):
        assert self.f.g() == approx(1.0)

    # Площадь пересечения - нулевая
    def test_g73_area(self):
        assert self.f.g73() == 0.0