def test_default_epsilon(self):
     l = LinearROI([0, 0], 1, 0)
     p = [0, 1e-16]
     self.assertNotEqual([0, 0], p)
     self.assertTrue(l.contains_point(p))
     p = [0, 2e-15]
     self.assertFalse(l.contains_point(p))
 def test_negative_length(self):
     l = LinearROI([0, 0], -sqrt(2), pi / 4)
     p = [-1, -1]
     self.assertTrue(l.contains_point(p))
     p = [-1.0001, -1.0001]
     self.assertFalse(l.contains_point(p))
     p = [-0.1, -0.001]
     self.assertFalse(l.contains_point(p))
 def test_wide_angle(self):
     l = LinearROI([0, 0], sqrt(2), 5 * pi / 4)
     p = [-1, -1]
     self.assertTrue(l.contains_point(p))
     p = [-1.0001, -1.0001]
     self.assertFalse(l.contains_point(p))
     p = [-0.1, -0.001]
     self.assertFalse(l.contains_point(p))
 def test_negative_angle(self):
     l = LinearROI([0, 0], sqrt(2), -pi / 4)
     p = [0, 0]
     self.assertTrue(l.contains_point(p))
     p = [1, -1]
     self.assertTrue(l.contains_point(p))
     p = [0.1, 0.1]
     self.assertFalse(l.contains_point(p))
     p = [-0.0001, 0.0001]
     self.assertFalse(l.contains_point(p))
    def test_near_endpoints(self):
        l = LinearROI([1, 1], 1.4, pi / 4)
        p = [0.9, 0.9]
        self.assertFalse(l.contains_point(p, 0))
        self.assertTrue(l.contains_point(p, 0.2))
        p = [2, 2]
        self.assertFalse(l.contains_point(p, 0))
        self.assertTrue(l.contains_point(p, 0.02))

        l = LinearROI([0, 0], sqrt(2), pi / 4)
        p = [1, 1]
        self.assertTrue(l.contains_point(p))
 def test_wraparound_angle(self):
     l = LinearROI([0, 0], sqrt(2), 2 * pi + pi / 4)
     p = [1, 1]
     self.assertTrue(l.contains_point(p))
 def test_near_midsection(self):
     l = LinearROI([-1, -1], 3 * sqrt(2), pi / 4)
     p = [0, 0]
     self.assertTrue(l.contains_point(p))
     p = [0, 0.1]
     self.assertFalse(l.contains_point(p))