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

Function fuzzy_equal

easygraph/tests/script_test_cpp_easygraph.py:9–46  ·  view source on GitHub ↗
(o1, o2)

Source from the content-addressed store, hash-verified

7
8
9def fuzzy_equal(o1, o2):
10 if isinstance(o1, dict) and isinstance(o2, dict):
11 if set(o1.keys()) != set(o2.keys()):
12 return False
13 for key in o1.keys():
14 o1_, o2_ = o1[key], o2[key]
15 if not fuzzy_equal(o1_, o2_):
16 return False
17 return True
18 if isinstance(o1, Iterator) and isinstance(o2, Iterator):
19 return fuzzy_equal(list(o1), list(o2))
20 if isinstance(o1, list) and isinstance(
21 o2, list
22 ): # every item in list1 should be in list2
23 if len(o1) != len(o2):
24 return False
25 for item1 in o1:
26 belong = False
27 for item2 in o2:
28 if fuzzy_equal(item1, item2):
29 belong = True
30 break
31 if not belong:
32 print(item1)
33 return False
34 return True
35 if isinstance(o1, tuple) and isinstance(
36 o2, tuple
37 ): # corresponding items should be equal
38 if len(o1) != len(o2):
39 return False
40 for i in range(len(o1)):
41 if not fuzzy_equal(o1[i], o2[i]):
42 return False
43 return True
44 if isinstance(o1, Number) and isinstance(o2, Number):
45 return abs(o2 - o1) < 1e-6
46 return o1 == o2
47
48
49class Tester:

Callers 1

assert_objectMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected