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