Пример #1
0
    def test_intersection(self):
        """Tests the line intersection algorithm."""
        intersect_cases = (
            ((-1, 0), (1, 0), (0, 1), (0, -1)),
            ((1, 1), (-1, -1), (-1, 1), (1, -1)),
        )
        for case in intersect_cases:
            self.assertTrue(Telemetry.intersects(*case))  # pylint: disable=star-args

        separate_cases = (
            ((1, 1), (0, 0), (-1, -1), (-2, -2)),
            ((1, 1), (0, 0), (-1, -1), (5, 20)),
        )
        for case in separate_cases:
            self.assertFalse(Telemetry.intersects(*case))  # pylint: disable=star-args

        smoke_cases = (
            ((-1, 1), (0, 0), (-1, 1), (0, 0)),  # Same
            ((-1, 1), (0, 0), (-5, 5), (0, 0)),  # Overlap with 1 end points
            ((-1, 1), (0, 0), (-5, 5), (5, -5)),  # Overlap
            ((1, 0), (-1, 0), (2, -1), (-2, -1)),  # Parallel
            ((1, 1), (1, 1), (2, 2), (2, 2)),  # Points
            ((1, 1), (1, 1), (1, 1), (1, 1)),  # Same points
            ((0.0, 0.0), (1.0, 0.0), (1.0, 0.0), (1.0, 1.0)),  # End to end
        )
        for case in smoke_cases:
            # Just make sure nothing catches on fire
            Telemetry.intersects(*case)  # pylint: disable=star-args