import unittest
import retworkx
class TestAdj(unittest.TestCase):
def test_single_neighbor(self):
dag = retworkx.PyDAG()
node_a = dag.add_node('a')
node_b = dag.add_child(node_a, 'b', {'a': 1})
node_c = dag.add_child(node_a, 'c', {'a': 2})
res = dag.neighbors(node_a)
self.assertCountEqual([node_c, node_b], res)
def test_unique_neighbors_on_dags(self):
dag = retworkx.PyDAG()
node_a = dag.add_node('a')
node_b = dag.add_child(node_a, 'b', ['edge a->b'])
node_c = dag.add_child(node_a, 'c', ['edge a->c'])
dag.add_edge(node_a, node_b, ['edge a->b bis'])
res = dag.neighbors(node_a)
self.assertCountEqual([node_c, node_b], res)
def test_unique_neighbors_on_graphs(self):
dag = retworkx.PyGraph()
node_a = dag.add_node('a')
node_b = dag.add_node('b')
node_c = dag.add_node('c')
dag.add_edge(node_a, node_b, ['edge a->b'])
dag.add_edge(node_a, node_b, ['edge a->b bis'])
dag.add_edge(node_a, node_c, ['edge a->c'])
res = dag.neighbors(node_a)
self.assertCountEqual([node_c, node_b], res)
def test_single_neighbor_dir(self):
dag = retworkx.PyDAG()
node_a = dag.add_node('a')
node_b = dag.add_child(node_a, 'b', {'a': 1})
node_c = dag.add_child(node_a, 'c', {'a': 2})
res = dag.successor_indices(node_a)
self.assertEqual([node_c, node_b], res)
res = dag.predecessor_indices(node_a)
self.assertEqual([], res)
def test_neighbor_dir_surrounded(self):
dag = retworkx.PyDAG()
node_a = dag.add_node('a')
node_b = dag.add_child(node_a, 'b', {'a': 1})
node_c = dag.add_child(node_b, 'c', {'a': 2})
res = dag.successor_indices(node_b)
self.assertEqual([node_c], res)
res = dag.predecessor_indices(node_b)
self.assertEqual([node_a], res)
def test_no_neighbor(self):
dag = retworkx.PyDAG()
node_a = dag.add_node('a')
self.assertEqual([], dag.neighbors(node_a))