code: def compute_collection_measures(self, no_singletons=False):
          
  
          prefix = "COLLECTION_" + self.current_similarity_measure + "_" + self.current_collection_type + "_"
  
          if no_singletons:
              prefix += "no_singletons_"
  
          if no_singletons:
              collection_sizes_temp = [x for x in self.collection_sizes if x != 1]
          else: #include singletons
              collection_sizes_temp = self.collection_sizes
  
          self.measures[prefix + 'count'] = len(collection_sizes_temp)
  
          self.measures[prefix + 'size_mean'] = get_mean(collection_sizes_temp) \
              if self.measures[prefix + 'count'] > 0 else 0
  
          self.measures[prefix + 'size_max'] = max(collection_sizes_temp) \
              if len(collection_sizes_temp) > 0 else 0
  
          self.measures[prefix + 'switch_count'] = self.measures[prefix + 'count'] - 1
docs: Computes summaries of measures using the discovered collections.
  
          :param no_singletons: if True, omits collections of length 1 from all measures
              and includes "no_singletons_" in the measure name.
  
          Adds the following measures to the self.measures dictionary, prefaced by
          COLLECTION_(similarity_measure)_(collection_type)_:
              - count: number of collections
              - size_mean: mean size of collections
              - size_max: size of largest collection
              - switch_count: number of changes between clusters