2018-09-19 23:49:15 +02:00
|
|
|
import json
|
|
|
|
|
with open('output/error_nodes.json') as f:
|
2018-09-27 17:53:39 +02:00
|
|
|
flat_error_nodes = json.load(f)
|
2018-09-19 23:49:15 +02:00
|
|
|
|
|
|
|
|
error_nodes = {}
|
|
|
|
|
for node, raw_node, generated_nodes in flat_error_nodes:
|
2018-09-27 17:53:39 +02:00
|
|
|
if node not in error_nodes:
|
|
|
|
|
error_nodes[node] = {
|
|
|
|
|
'raw_node': set(raw_node),
|
|
|
|
|
'generated_nodes': set(),
|
|
|
|
|
}
|
2018-09-19 23:49:15 +02:00
|
|
|
|
2018-09-27 17:53:39 +02:00
|
|
|
assert error_nodes[node]['raw_node'] == set(raw_node)
|
|
|
|
|
error_nodes[node]['generated_nodes'].add(tuple(sorted(generated_nodes)))
|
2018-09-19 23:49:15 +02:00
|
|
|
|
|
|
|
|
for node, error in error_nodes.items():
|
2018-09-27 17:53:39 +02:00
|
|
|
combined_generated_nodes = set()
|
|
|
|
|
for generated_node in error['generated_nodes']:
|
|
|
|
|
combined_generated_nodes |= set(generated_node)
|
2018-09-19 23:49:15 +02:00
|
|
|
|
2018-09-27 17:53:39 +02:00
|
|
|
assert error['raw_node'] == combined_generated_nodes, (node, error)
|
2018-09-19 23:49:15 +02:00
|
|
|
|
2018-09-27 17:53:39 +02:00
|
|
|
good_node = max(error['generated_nodes'], key=lambda x: len(x))
|
|
|
|
|
bad_nodes = error['generated_nodes'] - set((good_node, ))
|
2018-09-19 23:49:15 +02:00
|
|
|
|
2018-09-27 17:53:39 +02:00
|
|
|
if max(len(generated_node) for generated_node in bad_nodes) > 1:
|
|
|
|
|
assert False, node
|
2018-09-19 23:49:15 +02:00
|
|
|
else:
|
2018-09-27 17:53:39 +02:00
|
|
|
not_pcie = False
|
|
|
|
|
for generated_node in bad_nodes:
|
|
|
|
|
for wire in generated_node:
|
|
|
|
|
if not wire.startswith('PCIE'):
|
|
|
|
|
not_pcie = True
|
|
|
|
|
if not_pcie:
|
|
|
|
|
#print(node, good_node, map(tuple, bad_nodes))
|
|
|
|
|
print(repr((node, tuple(map(tuple, bad_nodes)))))
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
#print(repr((node, map(tuple, bad_nodes))))
|
|
|
|
|
pass
|