MCPcopy Create free account
hub / github.com/easy-graph/Easy-Graph / Tester

Class Tester

easygraph/tests/script_test_cpp_easygraph.py:49–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47
48
49class Tester:
50 def __init__(self, class1, class2):
51 self.class1 = class1
52 self.class2 = class2
53
54 def run_method(self, name, *args, **kwargs):
55 r1 = getattr(self.G1, name)(*args, **kwargs)
56 r2 = getattr(self.G2, name)(*args, **kwargs)
57 return r1, r2
58
59 def assert_object(self, o1, o2):
60 if not fuzzy_equal(o1, o2):
61 print(f"o1: {o1}")
62 print(f"o2: {o2}")
63 raise AssertionError(
64 f"FAILED: o1 != o2 in test for {self.class1.__name__} and"
65 f" {self.class2.__name__}"
66 )
67
68 def assert_property(self, name, g1=None, g2=None):
69 if g1 is None:
70 g1 = self.G1
71 if g2 is None:
72 g2 = self.G2
73 r1 = getattr(g1, name)
74 r2 = getattr(g2, name)
75 if name == "edges":
76 if not g1.is_directed():
77 r1 = r1 + [
78 (edge[1], edge[0])
79 if len(edge) == 2
80 else (edge[1], edge[0], edge[2])
81 for edge in r1
82 ]
83 r2 = r2 + [
84 (edge[1], edge[0])
85 if len(edge) == 2
86 else (edge[1], edge[0], edge[2])
87 for edge in r2
88 ]
89 self.assert_object(r1, r2)
90
91 def assert_method(self, name, *args, **kwargs):
92 r1 = getattr(self.G1, name)(*args, **kwargs)
93 r2 = getattr(self.G2, name)(*args, **kwargs)
94 self.assert_object(r1, r2)
95
96 def assert_graph(self, g1, g2):
97 self.assert_property("graph", g1, g2)
98 self.assert_property("nodes", g1, g2)
99 self.assert_property("edges", g1, g2)
100 self.assert_property("adj", g1, g2)
101
102 def test(self):
103 self.G1 = self.class1(name="graph", time=0)
104 self.G2 = self.class2(name="graph", time=0)
105 self.assert_property("graph")
106

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected