コード例 #1
0
 def test_invalid_radii_fails(self):
     with self.assertRaises(ValueError):
         s = SectorROI([0, 0], [-1, 1], [0, 0])
     with self.assertRaises(ValueError):
         s = SectorROI([0, 0], [1, 0], [0, 0])
     with self.assertRaises(ValueError):
         s = SectorROI([0, 0], [-2, -3], [0, 0])
コード例 #2
0
 def test_to_dict(self):
     s = SectorROI([1.1, 2.2], [3.3, 4.4], [pi / 2, pi])
     expected = {
         "typeid": "scanpointgenerator:roi/SectorROI:1.0",
         "centre": [1.1, 2.2],
         "radii": [3.3, 4.4],
         "angles": [pi / 2, pi]
     }
     self.assertEquals(expected, s.to_dict())
コード例 #3
0
    def test_mask_points(self):
        s = SectorROI((0, 1), (1, 2), (-pi / 2, pi / 2))
        p = [
            np.array([0, 1, 0, 2.05, 1, 0.7, -1.5, 0.00]),
            np.array([0, 0, 1, 0.00, 1, 0.7, 0.00, 2.05])
        ]
        points_cp = [axis.copy().tolist() for axis in p]
        expected = [True, True, False, False, True, False, False, True]
        mask = s.mask_points(p)
        self.assertEquals(expected, mask.tolist())

        s2 = SectorROI((0, 0), (1, 2),
                       (-5 * pi / 2, -3 * pi / 2))  #the same sector
        mask = s.mask_points(p)
        self.assertEquals(expected, mask.tolist())
        self.assertEqual(points_cp, [axis.tolist() for axis in p])
コード例 #4
0
    def test_in_sector_passes(self):
        s = SectorROI((0, 0), (0, 1), (0, pi / 2))
        p = (1, 0)
        self.assertTrue(s.contains_point(p))
        p = (0, 1)
        self.assertTrue(s.contains_point(p))
        p = (0.7, 0.7)
        self.assertTrue(s.contains_point(p))

        s = SectorROI((0, 0), (0, 1), (pi, 3 * pi / 2))
        p = (-1, 0)
        self.assertTrue(s.contains_point(p))
        p = (0, -1)
        self.assertTrue(s.contains_point(p))
        p = (-0.7, -0.7)
        self.assertTrue(s.contains_point(p))
コード例 #5
0
 def test_past_sector_fail(self):
     s = SectorROI((0, 0), (0, 1), (0, pi))
     p = (-0.1, -0.1)
     self.assertFalse(s.contains_point(p))
     p = (0.1, -0.1)
     self.assertFalse(s.contains_point(p))
     s = SectorROI((0, 0), (0, 1), (pi, 0))
     p = (-0.1, 0.1)
     self.assertFalse(s.contains_point(p))
     p = (0.1, 0.1)
     self.assertFalse(s.contains_point(p))
コード例 #6
0
 def test_from_dict(self):
     d = {
         "typeid": "scanpointgenerator:roi/SectorROI:1.0",
         "centre": [0.1, 0.2],
         "radii": [1, 2],
         "angles": [0, pi]
     }
     s = SectorROI.from_dict(d)
     self.assertEqual([0.1, 0.2], s.centre)
     self.assertEqual([1, 2], s.radii)
     self.assertEqual([0, pi], s.angles)
コード例 #7
0
 def test_inside_disc_passes(self):
     s = SectorROI((0, 0), (1., 2.), (0, 2 * pi))
     p = (1, 0)
     self.assertTrue(s.contains_point(p))
     p = (2, 0)
     self.assertTrue(s.contains_point(p))
     p = (1, 1)
     self.assertTrue(s.contains_point(p))
     p = (-1, -1)
     self.assertTrue(s.contains_point(p))
コード例 #8
0
 def test_outside_disc_fails(self):
     s = SectorROI((0, 0), (1., 2.), (0, 2 * pi))
     p = (2.1, 0)
     self.assertFalse(s.contains_point(p))
     p = (0, 2.1)
     self.assertFalse(s.contains_point(p))
     p = (1.5, 1.5)  # > (sqrt(2), sqrt(2))
     self.assertFalse(s.contains_point(p))
     p = (-1.5, 1.5)
     self.assertFalse(s.contains_point(p))
コード例 #9
0
 def test_inner_disc_fails(self):
     s = SectorROI((0, 0), (1., 2.), (0, 2 * pi))
     p = (0.9, 0)
     self.assertFalse(s.contains_point(p))
     p = (0, 0.9)
     self.assertFalse(s.contains_point(p))
     p = (0.7, 0.7)  # < (sqrt(2)/2, sqrt(2)/2)
     self.assertFalse(s.contains_point(p))
     p = (-0.7, -0.7)
     self.assertFalse(s.contains_point(p))
コード例 #10
0
 def test_init_negative_range(self):
     s = SectorROI([0, 0], [0, 1], [pi / 2, -pi / 2])
     self.assertEquals([pi / 2, 3 * pi / 2], s.angles)
コード例 #11
0
    def test_negative_ranges(self):
        s = SectorROI((0, 0), (0, 1), (pi / 2, -pi / 2))
        s.angles = (pi / 2, -pi / 2)
        p = (0.1, 0)
        self.assertFalse(s.contains_point(p))
        p = (-0.1, 0)
        self.assertTrue(s.contains_point(p))

        s = SectorROI((0, 0), (0, 1), (-pi / 2, pi / 2))
        p = (-0.1, 0)
        self.assertFalse(s.contains_point(p))
        p = (0.1, 0)
        self.assertTrue(s.contains_point(p))

        s = SectorROI((0, 0), (0, 1), (pi, -6 * pi))
        s.angles = (pi, -6 * pi)
        p = (1, 0)
        self.assertTrue(s.contains_point(p))
        p = (0, 1)
        self.assertTrue(s.contains_point(p))
        p = (-1, 0)
        self.assertTrue(s.contains_point(p))
        p = (0, -1)
        self.assertTrue(s.contains_point(p))
コード例 #12
0
 def test_init(self):
     s = SectorROI([1.1, 2.2], [3.3, 4.4], [pi / 2, 2 * pi])
     self.assertEquals([1.1, 2.2], s.centre)
     self.assertEquals([3.3, 4.4], s.radii)
     self.assertEquals([pi / 2, 2 * pi], s.angles)
コード例 #13
0
 def test_large_ranges_pass(self):
     s = SectorROI((0, 0), (0, 1), (-pi, 5 * pi))
     p = (0.7, 0.7)
     self.assertTrue(s.contains_point(p))