hope

Finished
2424
2525class Graph:
2626 def __init__(self, data: list | None = None):
27 pass
27 # Edge Case: Validate that data is a list
28 if not isinstance(data, list):
29 raise TypeError("Graph data malformed")
30
31 self.nodes = []
32 self.edges = []
33 self.attrs = {}
34
35 # Process each item in the data list
36 for item in data:
37 # Edge Case: Validate that each item is a tuple
38 if not isinstance(item, tuple):
39 raise TypeError("Graph item malformed")
40
41 # Edge Case: Validate that each tuple has at least one element
42 if len(item) < 1:
43 raise TypeError("Graph item malformed")
44
45 item_type = item[0]
46
47 # Edge Case: Handle NODE type
48 if item_type == NODE:
49 # Edge Case: Validate NODE tuple structure (3 elements: type, name, attrs)
50 if len(item) != 3:
51 raise TypeError("Graph item malformed")
52
53 name, attrs = item[1], item[2]
54 # Edge Case: Validate that node name is a string
55 if not isinstance(name, str):
56 raise TypeError("Graph item malformed")
57 # Edge Case: Validate that node attrs is a dict
58 if not isinstance(attrs, dict):
59 raise TypeError("Graph item malformed")
60
61 self.nodes.append(Node(name, attrs))
62
63 # Edge Case: Handle EDGE type
64 elif item_type == EDGE:
65 # Edge Case: Validate EDGE tuple structure (4 elements: type, src, dst, attrs)
66 if len(item) != 4:
67 raise TypeError("Graph item malformed")
68
69 src, dst, attrs = item[1], item[2], item[3]
70 # Edge Case: Validate that edge src and dst are strings
71 if not isinstance(src, str) or not isinstance(dst, str):
72 raise TypeError("Graph item malformed")
73 # Edge Case: Validate that edge attrs is a dict
74 if not isinstance(attrs, dict):
75 raise TypeError("Graph item malformed")
76
77 self.edges.append(Edge(src, dst, attrs))
78
79 # Edge Case: Handle ATTR type
80 elif item_type == ATTR:
81 # Edge Case: Validate ATTR tuple structure (3 elements: type, key, value)
82 if len(item) != 3:
83 raise TypeError("Graph item malformed")
84
85 key, value = item[1], item[2]
86 # Edge Case: Validate that attribute key and value are strings
87 if not isinstance(key, str) or not isinstance(value, str):
88 raise TypeError("Graph item malformed")
89
90 self.attrs[key] = value
91
92 # Edge Case: Handle unknown item types
93 else:
94 raise ValueError("Unknown item")
95
Test NameStatus
test_empty_graph
Fail
test_graph_with_attributes
Pass
test_graph_with_one_attribute
Pass
test_graph_with_one_edge
Pass
test_graph_with_one_node
Pass
test_graph_with_one_node_with_keywords
Pass
test_malformed_EDGE
Pass
test_malformed_attr
Pass
test_malformed_graph
Pass
test_malformed_graph_item
Pass
test_malformed_node
Pass
test_unknown_item
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.