def test_03_02_circle(self):
     '''Test the module on a uniform circle'''
     i,j = np.mgrid[-50:51,-50:51]
     labels = (np.sqrt(i*i+j*j) <= 40).astype(int)
     m, workspace = self.run_module(
         np.ones(labels.shape), labels, wants_workspace=True)
     assert isinstance(workspace, cpw.Workspace)
     bins = labels * (1 + (np.sqrt(i*i+j*j) / 10).astype(int))
     for bin in range(1,5):
         data = m.get_current_measurement(OBJECT_NAME, 
                                          feature_frac_at_d(bin, 4))
         self.assertEqual(len(data), 1)
         area = (float(bin) * 2.0 - 1.0)/16.0
         self.assertTrue(data[0] > area - .1)
         self.assertTrue(data[0] < area + .1)
         heatmap = workspace.image_set.get_image(
             HEAT_MAP_NAME + M.F_FRAC_AT_D).pixel_data
         data = data.astype(heatmap.dtype)
         self.assertEqual(mode(heatmap[bins == bin])[0], data[0])
         data = m.get_current_measurement(OBJECT_NAME,
                                          feature_mean_frac(bin, 4))
         self.assertEqual(len(data), 1)
         self.assertAlmostEqual(data[0], 1, 2)
         heatmap = workspace.image_set.get_image(
             HEAT_MAP_NAME + M.F_MEAN_FRAC).pixel_data
         data = data.astype(heatmap.dtype)
         self.assertEqual(mode(heatmap[bins == bin])[0], data[0])
         data = m.get_current_measurement(OBJECT_NAME,
                                          feature_radial_cv(bin, 4))
         self.assertEqual(len(data), 1)
         self.assertAlmostEqual(data[0], 0, 2)
         heatmap = workspace.image_set.get_image(
             HEAT_MAP_NAME + M.F_RADIAL_CV).pixel_data
         data = data.astype(heatmap.dtype)
         self.assertEqual(mode(heatmap[bins == bin])[0], data[0])
 def test_03_07_two_circles(self):
     i,j = np.mgrid[-50:51,-50:51]
     i, j = [np.hstack((x,x)) for x in i, j]
     d = np.sqrt(i*i+j*j)
     labels = (d <= 40).astype(int)
     labels[:, (j.shape[1]/2):] *= 2
     img = np.zeros(labels.shape)
     img[labels == 1] = 1
     img[labels == 2] = d[labels == 2] / 40
     m, workspace = self.run_module(
         img, labels, wants_workspace=True)
     assert isinstance(workspace, cpw.Workspace)
     bins = (labels != 0) * (1 + (np.sqrt(i*i+j*j) / 10).astype(int))
     for bin in range(1,5):
         data = m.get_current_measurement(OBJECT_NAME, 
                                          feature_frac_at_d(bin, 4))
         self.assertEqual(len(data), 2)
         area = (float(bin) * 2.0 - 1.0)/16.0
         bin_d = (float(bin) - .5) * 8 / 21
         self.assertLess(np.abs(data[0] - area), .1)
         self.assertLess(np.abs(data[1] - area * bin_d), .1)
         heatmap = workspace.image_set.get_image(
             HEAT_MAP_NAME + M.F_FRAC_AT_D).pixel_data
         data = data.astype(heatmap.dtype)
         for label in 1, 2:
             mask = (bins == bin) & (labels == label)
             self.assertEqual(mode(heatmap[mask]), data[label-1])
         data = m.get_current_measurement(OBJECT_NAME,
                                          feature_mean_frac(bin, 4))
         self.assertEqual(len(data), 2)
         self.assertAlmostEqual(data[0], 1, 2)
         heatmap = workspace.image_set.get_image(
             HEAT_MAP_NAME + M.F_MEAN_FRAC).pixel_data
         data = data.astype(heatmap.dtype)
         for label in 1, 2:
             mask = (bins == bin) & (labels == label)
             self.assertEqual(mode(heatmap[mask]), data[label-1])
         data = m.get_current_measurement(OBJECT_NAME,
                                          feature_radial_cv(bin, 4))
         self.assertEqual(len(data), 2)
         self.assertAlmostEqual(data[0], 0, 2)
         heatmap = workspace.image_set.get_image(
             HEAT_MAP_NAME + M.F_RADIAL_CV).pixel_data
         data = data.astype(heatmap.dtype)
         for label in 1, 2:
             mask = (bins == bin) & (labels == label)
             self.assertEqual(mode(heatmap[mask]), data[label-1])
예제 #3
0
 def test_01_02_two_modes(self):
     result = mode([1, 2, 2, 3, 3])
     self.assertEqual(len(result), 2)
     self.assertIn(2, result)
     self.assertIn(3, result)
예제 #4
0
 def test_01_01_single_mode(self):
     result = mode([1, 1, 2])
     self.assertEqual(len(result), 1)
     self.assertEqual(result[0], 1)
예제 #5
0
 def test_00_00_empty(self):
     self.assertEqual(len(mode(np.zeros(0))), 0)