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])