* refactor: move test_graph.py
* refactor: allow Graph to be initialized with no nodes and edges
The Graph class in `base.py` was refactored to separate the initialization of nodes and edges into a separate method called `add_nodes_and_edges()`. This improves code readability and maintainability by organizing the code logic more effectively.
* refactor: separate initialization of nodes and edges in get_graph()
The `get_graph()` function in `conftest.py` was refactored to separate the initialization of nodes and edges. This improves code readability and maintainability by organizing the code logic more effectively.
* refactor: separate initialization of nodes and edges in test_graph.py
* refactor: separate initialization of nodes and edges in base.py
The `add_node()` and `add_edge()` methods were added to the `Graph` class in `base.py` to separate the initialization of nodes and edges. This improves code readability and maintainability by organizing the code logic more effectively.