def test_02_03_get_measurement_images(self): '''Test the get_measurment_images function for some different cases''' module = M.MeasureCorrelation() module.image_groups[0].image_name.value = IMAGE1_NAME module.image_groups[1].image_name.value = IMAGE2_NAME module.object_groups[0].object_name.value = OBJECTS_NAME module.images_or_objects.value = M.M_IMAGES def meas(name): ans = module.get_measurement_images(None, name, "Correlation", "Correlation") if len(ans) == 0: return False self.assertTrue(ans[0] in [ "%s_%s" % x for x in ((IMAGE1_NAME, IMAGE2_NAME), (IMAGE2_NAME, IMAGE1_NAME)) ]) return True self.assertTrue(meas("Image")) self.assertFalse(meas(OBJECTS_NAME)) module.images_or_objects.value = M.M_OBJECTS self.assertFalse(meas("Image")) self.assertTrue(meas(OBJECTS_NAME)) module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS self.assertTrue(meas("Image")) self.assertTrue(meas(OBJECTS_NAME))
def test_02_03_get_measurement_images(self): '''Test the get_measurment_images function for some different cases''' for iocase, names in ((M.M_IMAGES, [cpmeas.IMAGE]), (M.M_OBJECTS, [ OBJECTS_NAME ]), (M.M_IMAGES_AND_OBJECTS, [cpmeas.IMAGE, OBJECTS_NAME])): module = M.MeasureCorrelation() module.image_groups[0].image_name.value = IMAGE1_NAME module.image_groups[1].image_name.value = IMAGE2_NAME module.object_groups[0].object_name.value = OBJECTS_NAME module.images_or_objects.value = iocase for name, mfs in ((cpmeas.IMAGE, self.all_image_measurement_formats), (OBJECTS_NAME, self.all_object_measurement_formats)): if name not in names: continue for mf in mfs: ftr = mf.split("_")[1] ans = module.get_measurement_images( None, name, "Correlation", ftr) expected = [ "%s_%s" % (i1, i2) for i1, i2 in ((IMAGE1_NAME, IMAGE2_NAME), (IMAGE2_NAME, IMAGE1_NAME)) ] if mf in self.asymmetrical_measurement_formats: self.assertTrue(all([e in ans for e in expected])) else: self.assertTrue(any([e in ans for e in expected]))
def test_02_04_03_get_measurement_columns_both(self): module = M.MeasureCorrelation() module.image_groups[0].image_name.value = IMAGE1_NAME module.image_groups[1].image_name.value = IMAGE2_NAME module.object_groups[0].object_name.value = OBJECTS_NAME module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS columns = module.get_measurement_columns(None) expected = [(cpmeas.IMAGE, ftr % (IMAGE1_NAME, IMAGE2_NAME), cpmeas.COLTYPE_FLOAT) for ftr in self.all_image_measurement_formats] + [ (cpmeas.IMAGE, ftr % (IMAGE2_NAME, IMAGE1_NAME), cpmeas.COLTYPE_FLOAT) for ftr in self.asymmetrical_measurement_formats ] + [(OBJECTS_NAME, ftr % (IMAGE1_NAME, IMAGE2_NAME), cpmeas.COLTYPE_FLOAT) for ftr in self.all_object_measurement_formats] + [ (OBJECTS_NAME, ftr % (IMAGE2_NAME, IMAGE1_NAME), cpmeas.COLTYPE_FLOAT) for ftr in self.asymmetrical_measurement_formats ] self.assertEqual(len(columns), len(expected)) for column in columns: self.assertTrue( any([ all([cf == ef for cf, ef in zip(column, ex)]) for ex in expected ]))
def test_02_02_get_measurements(self): '''Test the get_measurements function for some different cases''' module = M.MeasureCorrelation() module.image_groups[0].image_name.value = IMAGE1_NAME module.image_groups[1].image_name.value = IMAGE2_NAME module.object_groups[0].object_name.value = OBJECTS_NAME module.images_or_objects.value = M.M_IMAGES def meas(name): ans = list(module.get_measurements(None, name, "Correlation")) ans.sort() if name == "Image": mf = self.all_image_measurement_formats else: mf = self.all_object_measurement_formats expected = sorted([_.split("_")[1] for _ in mf]) return ans == expected self.assertTrue(meas("Image")) self.assertFalse(meas(OBJECTS_NAME)) module.images_or_objects.value = M.M_OBJECTS self.assertFalse(meas("Image")) self.assertTrue(meas(OBJECTS_NAME)) module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS self.assertTrue(meas("Image")) self.assertTrue(meas(OBJECTS_NAME))
def make_workspace(self, image1, image2, objects=None): '''Make a workspace for testing ApplyThreshold''' module = M.MeasureCorrelation() image_set_list = cpi.ImageSetList() image_set = image_set_list.get_image_set(0) for image_group, name, image in zip(module.image_groups, (IMAGE1_NAME,IMAGE2_NAME), (image1, image2)): image_group.image_name.value = name image_set.add(name, image) object_set = cpo.ObjectSet() if objects is None: module.images_or_objects.value = M.M_IMAGES else: module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS module.object_groups[0].object_name.value = OBJECTS_NAME object_set.add_objects(objects, OBJECTS_NAME) pipeline = cpp.Pipeline() workspace = cpw.Workspace(pipeline, module, image_set, object_set, cpmeas.Measurements(), image_set_list) return workspace, module
def test_02_04_02_get_measurement_columns_objects(self): module = M.MeasureCorrelation() module.image_groups[0].image_name.value = IMAGE1_NAME module.image_groups[1].image_name.value = IMAGE2_NAME module.object_groups[0].object_name.value = OBJECTS_NAME module.images_or_objects.value = M.M_OBJECTS columns = module.get_measurement_columns(None) expected = ((OBJECTS_NAME, M.F_CORRELATION_FORMAT% (IMAGE1_NAME, IMAGE2_NAME), cpmeas.COLTYPE_FLOAT),) self.assertEqual(len(columns), len(expected)) for column in columns: self.assertTrue(any([all([cf==ef for cf,ef in zip(column,ex)]) for ex in expected]))
def test_02_01_get_categories(self): '''Test the get_categories function for some different cases''' module = M.MeasureCorrelation() module.image_groups[0].image_name.value = IMAGE1_NAME module.image_groups[1].image_name.value = IMAGE2_NAME module.object_groups[0].object_name.value = OBJECTS_NAME module.images_or_objects.value = M.M_IMAGES def cat(name): return module.get_categories(None, name) == ["Correlation"] self.assertTrue(cat("Image")) self.assertFalse(cat(OBJECTS_NAME)) module.images_or_objects.value = M.M_OBJECTS self.assertFalse(cat("Image")) self.assertTrue(cat(OBJECTS_NAME)) module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS self.assertTrue(cat("Image")) self.assertTrue(cat(OBJECTS_NAME))
def test_02_02_get_measurements(self): '''Test the get_measurements function for some different cases''' module = M.MeasureCorrelation() module.image_groups[0].image_name.value = IMAGE1_NAME module.image_groups[1].image_name.value = IMAGE2_NAME module.object_groups[0].object_name.value = OBJECTS_NAME module.images_or_objects.value = M.M_IMAGES def meas(name): if name == "Image": ans = list(module.get_measurements(None,name,"Correlation")) ans.sort() return ans == ["Correlation", "Slope"] return module.get_measurements(None, name, "Correlation") == ["Correlation"] self.assertTrue(meas("Image")) self.assertFalse(meas(OBJECTS_NAME)) module.images_or_objects.value = M.M_OBJECTS self.assertFalse(meas("Image")) self.assertTrue(meas(OBJECTS_NAME)) module.images_or_objects.value = M.M_IMAGES_AND_OBJECTS self.assertTrue(meas("Image")) self.assertTrue(meas(OBJECTS_NAME))