Esempio n. 1
0
class TestPoint:

    # Инициализация (выполняется для каждого из тестов класса)
    def setup_method(self):
        self.f = Point(R2Point(0.0, 0.0))

    # Одноугольник является фигурой
    def test_figure(self):
        assert isinstance(self.f, Figure)

    # Конструктор порождает экземпляр класса Point (одноугольник)
    def test_point(self):
        assert isinstance(self.f, Point)

    # Периметр одноугольника нулевой
    def test_perimeter(self):
        assert self.f.perimeter() == 0.0

    # Площадь одноугольника нулевая
    def test_аrea(self):
        assert self.f.area() == 0.0

    # При добавлении точки одноугольник может не измениться
    def test_add1(self):
        assert self.f.add(R2Point(0.0, 0.0)) is self.f

    # При добавлении точки одноугольник может превратиться в двуугольник
    def test_add2(self):
        assert isinstance(self.f.add(R2Point(1.0, 0.0)), Segment)
Esempio n. 2
0
 def test_g73_rect_x_lay_trian_throught_border_four(self):
     # Сразу создаем прямоугольник
     Figure.rectangle = Rectangle(R2Point(0.0, 0.0), R2Point(2.0, 1.0))
     t = Point(R2Point(1.0, 0.0))
     t = t.add(R2Point(1.0, 1.0))
     t = t.add(R2Point(3.0, 2.0))
     t = t.add(R2Point(3.0, 0.0))
     # Общая площадь должна быть 1.0 (правая половина прямоугольника)
     assert t.g73() == approx(1.0)
Esempio n. 3
0
 def test_g73_trian_big_upper(self):
     Figure.rectangle = Rectangle()  # Сразу создаем прямоугольник
     # Сначала делаем отрезок
     t = Point(R2Point(-2.0, 2.0))
     t = t.add(R2Point(-2.0, -2.0))
     # Соединяем с третьей точкой -> Получаем большой треугольник
     t = t.add(R2Point(2.0, 2.0))
     # Общая площадь должна быть 2 (половина квадрата)
     assert t.g73() == approx(2.0)
Esempio n. 4
0
 def test_g73_rect_x_lay_trian_up3(self):
     # Сразу создаем прямоугольник
     Figure.rectangle = Rectangle(R2Point(0.0, 0.0), R2Point(2.0, 1.0))
     t = Point(R2Point(0.0, 2.0))
     t = t.add(R2Point(2.0, 0.0))
     t = t.add(R2Point(2.0, 2.0))
     t = t.add(R2Point(0.0, 1.0))
     t = t.add(R2Point(0.0, 0.0))
     # Общая площадь должна быть 2.0 (весь прямоугольник)
     assert t.g73() == approx(2.0)
Esempio n. 5
0
 def test_g73_rect_x_lay_same_line1(self):
     # Сразу создаем прямоугольник
     Figure.rectangle = Rectangle(R2Point(0.0, 0.0), R2Point(2.0, 1.0))
     t = Point(R2Point(1.0, 1.0))
     t = t.add(R2Point(2.0, 2.0))
     t = t.add(R2Point(0.0, 2.0))
     t = t.add(R2Point(2.0, 1.0))
     t = t.add(R2Point(0.0, 2.0))
     t = t.add(R2Point(0.0, 1.0))
     # Общая площадь должна быть 0.0 (пересечения лишь по верхней границе)
     assert t.g73() == 0.0
Esempio n. 6
0
 def test_g73_not_crossing(self):
     Figure.rectangle = Rectangle()  # Сразу создаем прямоугольник
     # Сначала делаем отрезок
     t = Point(R2Point(-1.0, 2.0))
     t = t.add(R2Point(1.0, 2.0))
     # Соединяем с третьей точкой -> Получаем треугольник
     t = t.add(R2Point(1.0, 3.0))
     # Соединяем с четвертой точкой -> Получаем полосочку ВЫШЕ нашего квадрата и не пересекающего его
     t = t.add(R2Point(-1.0, 3.0))
     # Общая площадь равна площади полоски, т.е. тоже единица
     assert t.g73() == 0.0
Esempio n. 7
0
 def test_g73_x_elongated(self):
     Figure.rectangle = Rectangle()  # Сразу создаем прямоугольник
     # Сначала делаем отрезок
     t = Point(R2Point(-2.0, -1.0))
     t = t.add(R2Point(2.0, -1.0))
     # Соединяем с третьей точкой -> Получаем треугольник
     t = t.add(R2Point(2.0, 1.0))
     # Соединяем с четвертой точкой -> Получаем вытянутый прямоугольник
     t = t.add(R2Point(-2.0, 1.0))
     # Но общая-то площадь измениться всё-равно не должна
     assert t.g73() == approx(4.0)
Esempio n. 8
0
 def test_g73_zero_segment(self):
     Figure.rectangle = Rectangle()  # Сразу создаем прямоугольник
     t = Point(R2Point(-1.0, -1.0))
     t = t.add(R2Point(1.0, 1.0))
     assert t.g73() == 0.0