def test_ordered_list_unique(self): """ Verify only unique items are there and the order is kept """ orig = [1, 5, unittest, 1, 3, 'a', 7, 7, None, 0, unittest] self.assertEqual(data_structures.ordered_list_unique(orig), [1, 5, unittest, 3, 'a', 7, None, 0])
def get_submodules(module_name): """ Get all submodules of the module. :param module_name: Name of module to search for :type module_name: str :return: List of the submodules :rtype: builtin.list """ module_info = loaded_module_info(module_name) module_list = [] try: submodules = module_info["submodules"] except KeyError: LOG.info("Module %s is not loaded", module_name) else: module_list = submodules for module in submodules: module_list += get_submodules(module) return data_structures.ordered_list_unique(module_list)
def process_results(self, results, label=None): """ Process a list of IOzone results according to label. :label: IOzone column label that we'll use to filter and compute geometric mean results, in practical term either 'file_size' or 'record_size'. :result: A list of n x m columns with original iozone results. :return: A list of n-? x (m-1) columns with geometric averages for values of each label (ex, average for all file_sizes). """ performance = [] if label is not None: index = _LABELS.index(label) sizes = data_structures.ordered_list_unique( [line[index] for line in results]) for size in sizes: r_results = [line for line in results if line[index] == size] performance.append(self.average_performance(r_results, size)) else: performance.append(self.average_performance(results)) return performance