def make_workspace(self, labels, mode, distance=0, neighbors_labels=None): '''Make a workspace for testing MeasureObjectNeighbors''' module = M.MeasureObjectNeighbors() module.module_num = 1 module.object_name.value = OBJECTS_NAME module.distance_method.value = mode module.distance.value = distance pipeline = cpp.Pipeline() pipeline.add_module(module) object_set = cpo.ObjectSet() image_set_list = cpi.ImageSetList() image_set = image_set_list.get_image_set(0) measurements = cpmeas.Measurements() measurements.group_index = 1 measurements.group_number = 1 workspace = cpw.Workspace(pipeline, module, image_set, object_set, measurements, image_set_list) objects = cpo.Objects() objects.segmented = labels object_set.add_objects(objects, OBJECTS_NAME) if neighbors_labels is None: module.neighbors_name.value = OBJECTS_NAME else: module.neighbors_name.value = NEIGHBORS_NAME objects = cpo.Objects() objects.segmented = neighbors_labels object_set.add_objects(objects, NEIGHBORS_NAME) return workspace, module
def test_05_02_get_measurement_columns_neighbors(self): module = M.MeasureObjectNeighbors() module.object_name.value = OBJECTS_NAME module.neighbors_name.value = NEIGHBORS_NAME module.distance.value = 5 for distance_method, scale in ((M.D_EXPAND, M.S_EXPANDED), (M.D_ADJACENT, M.S_ADJACENT), (M.D_WITHIN, "5")): module.distance_method.value = distance_method columns = module.get_measurement_columns(None) features = [ "%s_%s_%s_%s" % (M.C_NEIGHBORS, feature, NEIGHBORS_NAME, scale) for feature in M.M_ALL if feature != M.M_PERCENT_TOUCHING ] self.assertEqual(len(columns), len(features)) for column in columns: self.assertTrue(column[1] in features, "Unexpected column name: %s" % column[1])