From 56e9c5b84788f9dd5f2ca090bc2a4af82040f775 Mon Sep 17 00:00:00 2001 From: Filippo Martini Date: Mon, 14 Dec 2020 02:22:55 +0100 Subject: [PATCH] Add memory performance tests --- PyCTBN/tests/performance_comparisons.py | 31 +++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/PyCTBN/tests/performance_comparisons.py b/PyCTBN/tests/performance_comparisons.py index 622ca20..cc93f1c 100644 --- a/PyCTBN/tests/performance_comparisons.py +++ b/PyCTBN/tests/performance_comparisons.py @@ -3,6 +3,7 @@ import os import glob import numpy as np import pandas as pd +import networkx as nx import timeit import psutil @@ -21,6 +22,7 @@ class PerformanceComparisons(unittest.TestCase): cls.s1 = None cls.importer = None cls.original_algo = None + cls.real_net_graph = None cls.original_times = [] cls.optimized_times = [] cls.results = [] @@ -45,11 +47,19 @@ class PerformanceComparisons(unittest.TestCase): self.original_times.append(original_time) self.optimized_times.append(opt_time) self.results.append((original_res, opt_res)) - self.assertTrue(np.array_equal(original_res, opt_res)) + try: + self.assertTrue(np.array_equal(original_res, opt_res)) + except AssertionError: + self.real_net_graph = self.real_net_structure_builder() + original_algo_net_graph = self.build_graph_from_adj_matrix(original_res, self.s1.structure.nodes_labels) + original_spurius_edges = self.compute_edges_difference(self.real_net_graph, original_algo_net_graph) + opt_spurius_edges = self.compute_edges_difference(self.real_net_graph, se1._complete_graph) + self.assertLessEqual(opt_spurius_edges, original_spurius_edges) + continue self.save_datas(self.original_times, self.optimized_times) self.original_times[:] = [] self.optimized_times[:] = [] - + """ def test_memory_usage(self): for file_path in self.read_files: self.importer = JsonImporter(file_path, 'samples', 'dyn.str', 'variables', 'Time', 'Name') @@ -60,6 +70,7 @@ class PerformanceComparisons(unittest.TestCase): mem = current_process.memory_info().rss self.memory_usages.append((mem / 10 ** 6)) self.save_memory_usage_data(self.memory_usages) + """ def aux_build_importer(self, indx): self.importer.import_data(indx) @@ -94,5 +105,21 @@ class PerformanceComparisons(unittest.TestCase): df_results.to_csv(file_dest, index=False) + def real_net_structure_builder(self): + graph = nx.DiGraph() + graph.add_nodes_from(self.s1.structure.nodes_labels) + graph.add_edges_from(self.s1.structure.edges) + return graph + + def build_graph_from_adj_matrix(self, original_res, nodes_labels): + graph = nx.from_numpy_matrix(original_res, create_using=nx.DiGraph) + mapping = dict(zip(graph.nodes, nodes_labels)) + graph = nx.relabel_nodes(graph, mapping) + return graph + + def compute_edges_difference(self, g1, g2): + return len(nx.difference(g1, g2)) + + if __name__ == '__main__': unittest.main()