def test_has_crossing(self):
        line = HighDimLine(np.array([(3., 2), (5., 0)]))  # y = -x + 5
        line_segment = HighDimLineSegment(
                np.array([(3, 0.5), (5, 1.5)]))  # y = 0.5 x - 1
        # line_points[0] = segpoints[0] = intersection point
        line_points = np.array([(4., 1.), (5., 0.)])
        self.assertTrue(line.is_on(line_points[0]))
        self.assertTrue(line.is_on(line_points[1]))

        seg_points = np.copy(line_points)
        seg_points[1, 1] = 1.5
        self.assertTrue(line_segment.is_on(seg_points[0]))
        self.assertTrue(line_segment.is_on(seg_points[1]))

        line_val = line.call(np.array([5.]))
        np_assert_allclose(0.0, line_val)
        np_assert_allclose(line_points[..., -1], line(line_points[..., :-1]))
        self.assertTrue(has_crossing(line, line_segment))
 def test_is_on_works(self):
     line = HighDimLine(np.array(((3, 0.5), (5, 1.5))))  # y = 0.5 x - 1
     p = np.array((4, 1))
     self.assertTrue(line.is_on(p))
     self.assertFalse(line.is_below(p))
     self.assertFalse(line.is_above(p))
 def test_is_above_works(self):
     line = HighDimLine(np.array(((3, 2), (5, 0))))  # y = -x + 5
     p = np.array((1, 4.5))
     self.assertTrue(line.is_above(p))
     self.assertFalse(line.is_below(p))