class TestBFS_Case_6(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 3
        self.graph = Graph(self.START)
        self.graph.add_edge(10, 6)
        self.graph.add_edge(3, 1)
        self.graph.add_edge(10, 1)
        self.graph.add_edge(3, 1)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(5, 2)
        return super().setUp()

    def test_case_6(self):
        self.graph.get_all_paths()
        self.graph.get_costs()
        self.assertEqual(self.graph.get_costs(),
                         [6, -1, -1, -1, -1, -1, 12, -1, 12])

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()
class TestBFS_Case_1(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 2
        self.graph = Graph(self.START)
        self.graph.add_edge(3, 1)
        self.graph.add_edge(2, 3)
        return super().setUp()

    def test_case_1(self):
        self.graph.get_all_paths()
        self.graph.get_costs()
        self.assertEqual(self.graph.get_costs(), [-1, 6])

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()
Beispiel #3
0
class TestBFS_Case_0(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 1
        self.graph = Graph(self.START)
        self.graph.add_edge(4, 2)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 3)
        return super().setUp()

    def test_case_0(self):
        self.graph.get_all_paths()
        self.graph.get_costs()
        self.assertEqual(self.graph.get_costs(), [6, 6, -1])

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()
class TestBFS_Case_18(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 40
        self.graph = Graph(self.START)
        self.graph.add_edge(54, 455)
        self.graph.add_edge(30, 4)
        self.graph.add_edge(30, 37)
        self.graph.add_edge(30, 53)
        self.graph.add_edge(50, 26)
        self.graph.add_edge(45, 11)
        self.graph.add_edge(30, 4)
        self.graph.add_edge(40, 28)
        self.graph.add_edge(10, 9)
        self.graph.add_edge(5, 50)
        self.graph.add_edge(50, 34)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(15, 36)
        self.graph.add_edge(30, 20)
        self.graph.add_edge(35, 54)
        self.graph.add_edge(45, 25)
        self.graph.add_edge(30, 22)
        self.graph.add_edge(10, 50)
        self.graph.add_edge(25, 43)
        self.graph.add_edge(50, 21)
        self.graph.add_edge(5, 46)
        self.graph.add_edge(5, 23)
        self.graph.add_edge(35, 16)
        self.graph.add_edge(40, 41)
        self.graph.add_edge(15, 7)
        self.graph.add_edge(30, 4)
        self.graph.add_edge(15, 4)
        self.graph.add_edge(5, 38)
        self.graph.add_edge(40, 13)
        self.graph.add_edge(35, 36)
        self.graph.add_edge(15, 35)
        self.graph.add_edge(35, 33)
        self.graph.add_edge(30, 9)
        self.graph.add_edge(45, 2)
        self.graph.add_edge(35, 23)
        self.graph.add_edge(25, 35)
        self.graph.add_edge(15, 1)
        self.graph.add_edge(15, 54)
        self.graph.add_edge(40, 27)
        self.graph.add_edge(20, 16)
        self.graph.add_edge(20, 53)
        self.graph.add_edge(45, 44)
        self.graph.add_edge(15, 40)
        self.graph.add_edge(30, 22)
        self.graph.add_edge(50, 10)
        self.graph.add_edge(1, 50)
        self.graph.add_edge(45, 1)
        self.graph.add_edge(1, 43)
        self.graph.add_edge(1, 32)
        self.graph.add_edge(40, 32)
        self.graph.add_edge(30, 10)
        self.graph.add_edge(20, 36)
        self.graph.add_edge(5, 16)
        self.graph.add_edge(50, 34)
        self.graph.add_edge(30, 24)
        self.graph.add_edge(35, 30)
        self.graph.add_edge(30, 10)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(15, 18)
        self.graph.add_edge(30, 18)
        self.graph.add_edge(10, 11)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(50, 12)
        self.graph.add_edge(40, 44)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(40, 52)
        self.graph.add_edge(30, 48)
        self.graph.add_edge(20, 45)
        self.graph.add_edge(40, 8)
        self.graph.add_edge(5, 15)
        self.graph.add_edge(25, 20)
        self.graph.add_edge(45, 46)
        self.graph.add_edge(15, 35)
        self.graph.add_edge(20, 28)
        self.graph.add_edge(25, 36)
        self.graph.add_edge(40, 4)
        self.graph.add_edge(15, 2)
        self.graph.add_edge(15, 47)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(25, 54)
        self.graph.add_edge(50, 19)
        self.graph.add_edge(35, 12)
        self.graph.add_edge(35, 23)
        self.graph.add_edge(45, 20)
        self.graph.add_edge(40, 16)
        self.graph.add_edge(5, 27)
        self.graph.add_edge(1, 43)
        self.graph.add_edge(35, 18)
        self.graph.add_edge(50, 17)
        self.graph.add_edge(1, 47)
        self.graph.add_edge(50, 14)
        self.graph.add_edge(30, 39)
        self.graph.add_edge(10, 37)
        self.graph.add_edge(10, 2)
        self.graph.add_edge(25, 27)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(40, 37)
        self.graph.add_edge(35, 20)
        self.graph.add_edge(10, 18)
        self.graph.add_edge(15, 14)
        self.graph.add_edge(40, 51)
        self.graph.add_edge(30, 44)
        self.graph.add_edge(5, 15)
        self.graph.add_edge(40, 26)
        self.graph.add_edge(25, 41)
        self.graph.add_edge(20, 6)
        self.graph.add_edge(40, 9)
        self.graph.add_edge(35, 52)
        self.graph.add_edge(40, 25)
        self.graph.add_edge(1, 52)
        self.graph.add_edge(15, 41)
        self.graph.add_edge(20, 51)
        self.graph.add_edge(30, 26)
        self.graph.add_edge(30, 34)
        self.graph.add_edge(15, 21)
        self.graph.add_edge(30, 31)
        self.graph.add_edge(25, 52)
        self.graph.add_edge(30, 54)
        self.graph.add_edge(30, 2)
        self.graph.add_edge(20, 43)
        self.graph.add_edge(5, 3)
        self.graph.add_edge(25, 21)
        self.graph.add_edge(50, 47)
        self.graph.add_edge(5, 35)
        self.graph.add_edge(40, 13)
        self.graph.add_edge(30, 33)
        self.graph.add_edge(5, 24)
        self.graph.add_edge(25, 54)
        self.graph.add_edge(50, 19)
        self.graph.add_edge(50, 25)
        self.graph.add_edge(35, 12)
        self.graph.add_edge(1, 26)
        self.graph.add_edge(50, 4)
        self.graph.add_edge(50, 44)
        self.graph.add_edge(35, 54)
        self.graph.add_edge(5, 51)
        self.graph.add_edge(20, 4)
        self.graph.add_edge(50, 18)
        self.graph.add_edge(10, 52)
        self.graph.add_edge(10, 54)
        self.graph.add_edge(20, 31)
        self.graph.add_edge(50, 2)
        self.graph.add_edge(45, 52)
        self.graph.add_edge(45, 27)
        self.graph.add_edge(45, 33)
        self.graph.add_edge(35, 14)
        self.graph.add_edge(25, 11)
        self.graph.add_edge(10, 32)
        self.graph.add_edge(10, 21)
        self.graph.add_edge(40, 1)
        self.graph.add_edge(20, 18)
        self.graph.add_edge(50, 32)
        self.graph.add_edge(5, 17)
        self.graph.add_edge(5, 11)
        self.graph.add_edge(15, 10)
        self.graph.add_edge(1, 50)
        self.graph.add_edge(10, 27)
        self.graph.add_edge(50, 10)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(10, 44)
        self.graph.add_edge(10, 49)
        self.graph.add_edge(50, 31)
        self.graph.add_edge(40, 22)
        self.graph.add_edge(5, 46)
        self.graph.add_edge(15, 1)
        self.graph.add_edge(20, 17)
        self.graph.add_edge(50, 22)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(40, 4)
        self.graph.add_edge(40, 38)
        self.graph.add_edge(45, 20)
        self.graph.add_edge(30, 42)
        self.graph.add_edge(15, 32)
        self.graph.add_edge(25, 31)
        self.graph.add_edge(25, 8)
        self.graph.add_edge(20, 43)
        self.graph.add_edge(40, 42)
        self.graph.add_edge(45, 35)
        self.graph.add_edge(15, 34)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(35, 4)
        self.graph.add_edge(25, 49)
        self.graph.add_edge(25, 3)
        self.graph.add_edge(50, 27)
        self.graph.add_edge(15, 35)
        self.graph.add_edge(20, 2)
        self.graph.add_edge(50, 22)
        self.graph.add_edge(30, 32)
        self.graph.add_edge(20, 41)
        self.graph.add_edge(25, 46)
        self.graph.add_edge(40, 49)
        self.graph.add_edge(5, 37)
        self.graph.add_edge(15, 47)
        self.graph.add_edge(20, 24)
        self.graph.add_edge(40, 39)
        self.graph.add_edge(40, 38)
        self.graph.add_edge(40, 7)
        self.graph.add_edge(50, 22)
        self.graph.add_edge(5, 20)
        self.graph.add_edge(15, 23)
        self.graph.add_edge(20, 27)
        self.graph.add_edge(20, 13)
        self.graph.add_edge(10, 54)
        self.graph.add_edge(45, 46)
        self.graph.add_edge(40, 7)
        self.graph.add_edge(5, 37)
        self.graph.add_edge(30, 42)
        self.graph.add_edge(15, 37)
        self.graph.add_edge(25, 31)
        self.graph.add_edge(40, 37)
        self.graph.add_edge(50, 37)
        self.graph.add_edge(35, 30)
        self.graph.add_edge(50, 24)
        self.graph.add_edge(40, 41)
        self.graph.add_edge(50, 34)
        self.graph.add_edge(1, 43)
        self.graph.add_edge(50, 32)
        self.graph.add_edge(45, 22)
        self.graph.add_edge(35, 10)
        self.graph.add_edge(30, 36)
        self.graph.add_edge(40, 13)
        self.graph.add_edge(15, 10)
        self.graph.add_edge(15, 4)
        self.graph.add_edge(25, 49)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(50, 44)
        self.graph.add_edge(15, 44)
        self.graph.add_edge(30, 35)
        self.graph.add_edge(15, 33)
        self.graph.add_edge(15, 17)
        self.graph.add_edge(25, 41)
        self.graph.add_edge(15, 11)
        self.graph.add_edge(25, 22)
        self.graph.add_edge(45, 37)
        self.graph.add_edge(1, 39)
        self.graph.add_edge(35, 34)
        self.graph.add_edge(45, 13)
        self.graph.add_edge(30, 42)
        self.graph.add_edge(35, 31)
        self.graph.add_edge(45, 36)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(50, 14)
        self.graph.add_edge(5, 38)
        self.graph.add_edge(35, 16)
        self.graph.add_edge(50, 31)
        self.graph.add_edge(35, 36)
        self.graph.add_edge(40, 43)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(45, 5)
        self.graph.add_edge(30, 26)
        self.graph.add_edge(30, 27)
        self.graph.add_edge(45, 44)
        self.graph.add_edge(15, 3)
        self.graph.add_edge(20, 37)
        self.graph.add_edge(10, 22)
        self.graph.add_edge(25, 1)
        self.graph.add_edge(20, 8)
        self.graph.add_edge(30, 1)
        self.graph.add_edge(5, 26)
        self.graph.add_edge(40, 31)
        self.graph.add_edge(45, 48)
        self.graph.add_edge(40, 17)
        self.graph.add_edge(10, 51)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(30, 9)
        self.graph.add_edge(50, 13)
        self.graph.add_edge(35, 22)
        self.graph.add_edge(30, 25)
        self.graph.add_edge(15, 16)
        self.graph.add_edge(1, 10)
        self.graph.add_edge(30, 42)
        self.graph.add_edge(45, 12)
        self.graph.add_edge(45, 39)
        self.graph.add_edge(20, 37)
        self.graph.add_edge(20, 51)
        self.graph.add_edge(20, 5)
        self.graph.add_edge(15, 46)
        self.graph.add_edge(35, 22)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(35, 38)
        self.graph.add_edge(5, 20)
        self.graph.add_edge(35, 40)
        self.graph.add_edge(25, 21)
        self.graph.add_edge(20, 22)
        self.graph.add_edge(40, 3)
        self.graph.add_edge(40, 38)
        self.graph.add_edge(10, 31)
        self.graph.add_edge(20, 44)
        self.graph.add_edge(25, 22)
        self.graph.add_edge(50, 13)
        self.graph.add_edge(30, 1)
        self.graph.add_edge(35, 25)
        self.graph.add_edge(50, 38)
        self.graph.add_edge(10, 38)
        self.graph.add_edge(30, 13)
        self.graph.add_edge(30, 48)
        self.graph.add_edge(5, 34)
        self.graph.add_edge(50, 14)
        self.graph.add_edge(30, 41)
        self.graph.add_edge(1, 10)
        self.graph.add_edge(40, 20)
        self.graph.add_edge(35, 11)
        self.graph.add_edge(20, 14)
        self.graph.add_edge(30, 49)
        self.graph.add_edge(50, 38)
        self.graph.add_edge(45, 3)
        self.graph.add_edge(25, 50)
        self.graph.add_edge(20, 45)
        self.graph.add_edge(50, 31)
        self.graph.add_edge(50, 12)
        self.graph.add_edge(10, 37)
        self.graph.add_edge(25, 8)
        self.graph.add_edge(30, 38)
        self.graph.add_edge(25, 17)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(45, 51)
        self.graph.add_edge(5, 53)
        self.graph.add_edge(20, 8)
        self.graph.add_edge(45, 42)
        self.graph.add_edge(5, 33)
        self.graph.add_edge(40, 23)
        self.graph.add_edge(40, 24)
        self.graph.add_edge(35, 44)
        self.graph.add_edge(40, 36)
        self.graph.add_edge(35, 14)
        self.graph.add_edge(10, 15)
        self.graph.add_edge(40, 5)
        self.graph.add_edge(40, 39)
        self.graph.add_edge(25, 52)
        self.graph.add_edge(45, 19)
        self.graph.add_edge(30, 52)
        self.graph.add_edge(45, 50)
        self.graph.add_edge(35, 34)
        self.graph.add_edge(10, 28)
        self.graph.add_edge(50, 39)
        self.graph.add_edge(45, 30)
        self.graph.add_edge(40, 36)
        self.graph.add_edge(30, 2)
        self.graph.add_edge(45, 5)
        self.graph.add_edge(30, 2)
        self.graph.add_edge(25, 18)
        self.graph.add_edge(35, 47)
        self.graph.add_edge(10, 33)
        self.graph.add_edge(50, 36)
        self.graph.add_edge(25, 51)
        self.graph.add_edge(30, 17)
        self.graph.add_edge(10, 27)
        self.graph.add_edge(35, 53)
        self.graph.add_edge(20, 42)
        self.graph.add_edge(45, 2)
        self.graph.add_edge(30, 2)
        self.graph.add_edge(10, 50)
        self.graph.add_edge(30, 47)
        self.graph.add_edge(35, 40)
        self.graph.add_edge(40, 52)
        self.graph.add_edge(45, 42)
        self.graph.add_edge(45, 34)
        self.graph.add_edge(10, 7)
        self.graph.add_edge(15, 20)
        self.graph.add_edge(50, 4)
        self.graph.add_edge(1, 43)
        self.graph.add_edge(25, 23)
        self.graph.add_edge(35, 42)
        self.graph.add_edge(35, 16)
        self.graph.add_edge(50, 19)
        self.graph.add_edge(35, 43)
        self.graph.add_edge(15, 12)
        self.graph.add_edge(20, 14)
        self.graph.add_edge(40, 16)
        self.graph.add_edge(30, 11)
        self.graph.add_edge(30, 33)
        self.graph.add_edge(50, 44)
        self.graph.add_edge(30, 3)
        self.graph.add_edge(40, 32)
        self.graph.add_edge(25, 51)
        self.graph.add_edge(30, 32)
        self.graph.add_edge(25, 39)
        self.graph.add_edge(45, 50)
        self.graph.add_edge(40, 51)
        self.graph.add_edge(40, 33)
        self.graph.add_edge(15, 44)
        self.graph.add_edge(45, 46)
        self.graph.add_edge(10, 22)
        self.graph.add_edge(45, 17)
        self.graph.add_edge(35, 33)
        self.graph.add_edge(50, 5)
        self.graph.add_edge(20, 11)
        self.graph.add_edge(20, 37)
        self.graph.add_edge(45, 27)
        self.graph.add_edge(10, 29)
        self.graph.add_edge(5, 26)
        self.graph.add_edge(5, 32)
        self.graph.add_edge(20, 38)
        self.graph.add_edge(5, 17)
        self.graph.add_edge(5, 20)
        self.graph.add_edge(30, 13)
        self.graph.add_edge(1, 5)
        self.graph.add_edge(20, 51)
        self.graph.add_edge(40, 12)
        self.graph.add_edge(1, 51)
        self.graph.add_edge(50, 7)
        self.graph.add_edge(30, 21)
        self.graph.add_edge(15, 37)
        self.graph.add_edge(20, 3)
        self.graph.add_edge(45, 39)
        self.graph.add_edge(5, 10)
        self.graph.add_edge(45, 30)
        self.graph.add_edge(20, 33)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(45, 53)
        self.graph.add_edge(5, 12)
        self.graph.add_edge(45, 12)
        self.graph.add_edge(1, 5)
        self.graph.add_edge(25, 16)
        self.graph.add_edge(10, 6)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(45, 29)
        self.graph.add_edge(50, 1)
        self.graph.add_edge(20, 29)
        self.graph.add_edge(25, 43)
        self.graph.add_edge(50, 8)
        self.graph.add_edge(35, 19)
        self.graph.add_edge(40, 28)
        self.graph.add_edge(50, 41)
        self.graph.add_edge(10, 19)
        self.graph.add_edge(25, 30)
        self.graph.add_edge(25, 47)
        self.graph.add_edge(25, 10)
        self.graph.add_edge(15, 53)
        self.graph.add_edge(20, 1)
        self.graph.add_edge(25, 48)
        self.graph.add_edge(30, 37)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(30, 7)
        self.graph.add_edge(5, 3)
        self.graph.add_edge(10, 14)
        self.graph.add_edge(25, 33)
        self.graph.add_edge(35, 38)
        self.graph.add_edge(45, 8)
        self.graph.add_edge(35, 16)
        self.graph.add_edge(30, 34)
        self.graph.add_edge(10, 49)
        self.graph.add_edge(25, 40)
        self.graph.add_edge(15, 48)
        self.graph.add_edge(35, 41)
        self.graph.add_edge(35, 29)
        self.graph.add_edge(35, 29)
        self.graph.add_edge(10, 18)
        self.graph.add_edge(5, 19)
        self.graph.add_edge(5, 6)
        self.graph.add_edge(40, 2)
        self.graph.add_edge(5, 33)
        self.graph.add_edge(40, 29)
        self.graph.add_edge(20, 22)
        self.graph.add_edge(5, 6)
        return super().setUp()

    def test_case_18(self):
        self.graph.get_all_paths()
        self.graph.get_costs()
        self.assertEqual(self.graph.get_costs(), [
            6, 6, 6, 6, 6, 12, 6, 6, 6, 12, 12, 6, 6, 12, 6, 6, 6, 12, 12, 6,
            12, 6, 6, 6, 6, 6, 6, 6, 6, 12, 6, 6, 6, 12, 6, 6, 6, 6, 6, 6, 6,
            6, 6, 12, 12, 12, 12, 6, 12, 6, 6, 12, 12
        ])

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()
class TestBFS_Case_15(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 152
        self.graph = Graph(self.START)
        self.graph.add_edge(165, 298)
        self.graph.add_edge(21, 34)
        self.graph.add_edge(115, 12)
        self.graph.add_edge(79, 102)
        self.graph.add_edge(116, 150)
        self.graph.add_edge(40, 94)
        self.graph.add_edge(51, 54)
        self.graph.add_edge(159, 72)
        self.graph.add_edge(35, 42)
        self.graph.add_edge(114, 98)
        self.graph.add_edge(14, 30)
        self.graph.add_edge(133, 68)
        self.graph.add_edge(101, 72)
        self.graph.add_edge(163, 132)
        self.graph.add_edge(165, 144)
        self.graph.add_edge(162, 84)
        self.graph.add_edge(125, 1)
        self.graph.add_edge(18, 78)
        self.graph.add_edge(15, 162)
        self.graph.add_edge(102, 54)
        self.graph.add_edge(81, 50)
        self.graph.add_edge(82, 138)
        self.graph.add_edge(7, 80)
        self.graph.add_edge(64, 28)
        self.graph.add_edge(164, 38)
        self.graph.add_edge(64, 154)
        self.graph.add_edge(25, 100)
        self.graph.add_edge(41, 92)
        self.graph.add_edge(102, 52)
        self.graph.add_edge(39, 92)
        self.graph.add_edge(32, 56)
        self.graph.add_edge(158, 64)
        self.graph.add_edge(79, 106)
        self.graph.add_edge(57, 150)
        self.graph.add_edge(102, 132)
        self.graph.add_edge(42, 28)
        self.graph.add_edge(102, 58)
        self.graph.add_edge(90, 100)
        self.graph.add_edge(104, 40)
        self.graph.add_edge(103, 102)
        self.graph.add_edge(117, 64)
        self.graph.add_edge(2, 50)
        self.graph.add_edge(117, 146)
        self.graph.add_edge(105, 130)
        self.graph.add_edge(97, 110)
        self.graph.add_edge(12, 32)
        self.graph.add_edge(155, 154)
        self.graph.add_edge(152, 92)
        self.graph.add_edge(23, 44)
        self.graph.add_edge(94, 58)
        self.graph.add_edge(121, 86)
        self.graph.add_edge(144, 98)
        self.graph.add_edge(27, 66)
        self.graph.add_edge(113, 10)
        self.graph.add_edge(62, 14)
        self.graph.add_edge(143, 26)
        self.graph.add_edge(72, 26)
        self.graph.add_edge(101, 128)
        self.graph.add_edge(22, 14)
        self.graph.add_edge(13, 14)
        self.graph.add_edge(132, 124)
        self.graph.add_edge(115, 90)
        self.graph.add_edge(154, 60)
        self.graph.add_edge(27, 84)
        self.graph.add_edge(83, 158)
        self.graph.add_edge(34, 50)
        self.graph.add_edge(120, 112)
        self.graph.add_edge(27, 118)
        self.graph.add_edge(108, 116)
        self.graph.add_edge(150, 66)
        self.graph.add_edge(81, 136)
        self.graph.add_edge(67, 126)
        self.graph.add_edge(109, 86)
        self.graph.add_edge(164, 128)
        self.graph.add_edge(122, 92)
        self.graph.add_edge(140, 30)
        self.graph.add_edge(159, 122)
        self.graph.add_edge(137, 98)
        self.graph.add_edge(142, 64)
        self.graph.add_edge(12, 124)
        self.graph.add_edge(123, 96)
        self.graph.add_edge(58, 162)
        self.graph.add_edge(150, 138)
        self.graph.add_edge(154, 34)
        self.graph.add_edge(159, 102)
        self.graph.add_edge(132, 100)
        self.graph.add_edge(8, 72)
        self.graph.add_edge(123, 90)
        self.graph.add_edge(40, 58)
        self.graph.add_edge(84, 144)
        self.graph.add_edge(121, 146)
        self.graph.add_edge(47, 108)
        self.graph.add_edge(25, 32)
        self.graph.add_edge(163, 100)
        self.graph.add_edge(43, 38)
        self.graph.add_edge(36, 94)
        self.graph.add_edge(73, 132)
        self.graph.add_edge(116, 134)
        self.graph.add_edge(67, 134)
        self.graph.add_edge(23, 32)
        self.graph.add_edge(63, 32)
        self.graph.add_edge(112, 74)
        self.graph.add_edge(21, 100)
        self.graph.add_edge(90, 54)
        self.graph.add_edge(81, 116)
        self.graph.add_edge(48, 82)
        self.graph.add_edge(34, 6)
        self.graph.add_edge(3, 12)
        self.graph.add_edge(156, 130)
        self.graph.add_edge(38, 154)
        self.graph.add_edge(112, 156)
        self.graph.add_edge(54, 80)
        self.graph.add_edge(95, 34)
        self.graph.add_edge(123, 62)
        self.graph.add_edge(60, 54)
        self.graph.add_edge(161, 156)
        self.graph.add_edge(112, 158)
        self.graph.add_edge(73, 46)
        self.graph.add_edge(96, 64)
        self.graph.add_edge(99, 76)
        self.graph.add_edge(10, 28)
        self.graph.add_edge(1, 146)
        self.graph.add_edge(41, 152)
        self.graph.add_edge(117, 18)
        self.graph.add_edge(35, 26)
        self.graph.add_edge(59, 128)
        self.graph.add_edge(63, 54)
        self.graph.add_edge(40, 144)
        self.graph.add_edge(93, 66)
        self.graph.add_edge(75, 78)
        self.graph.add_edge(109, 1)
        self.graph.add_edge(116, 70)
        self.graph.add_edge(157, 120)
        self.graph.add_edge(115, 110)
        self.graph.add_edge(51, 150)
        self.graph.add_edge(143, 116)
        self.graph.add_edge(15, 160)
        self.graph.add_edge(9, 54)
        self.graph.add_edge(120, 156)
        self.graph.add_edge(42, 10)
        self.graph.add_edge(45, 70)
        self.graph.add_edge(125, 58)
        self.graph.add_edge(119, 48)
        self.graph.add_edge(5, 76)
        self.graph.add_edge(31, 46)
        self.graph.add_edge(92, 8)
        self.graph.add_edge(39, 94)
        self.graph.add_edge(125, 22)
        self.graph.add_edge(115, 54)
        self.graph.add_edge(117, 124)
        self.graph.add_edge(162, 38)
        self.graph.add_edge(71, 90)
        self.graph.add_edge(10, 150)
        self.graph.add_edge(81, 94)
        self.graph.add_edge(87, 106)
        self.graph.add_edge(109, 136)
        self.graph.add_edge(150, 132)
        self.graph.add_edge(89, 134)
        self.graph.add_edge(142, 14)
        self.graph.add_edge(151, 164)
        self.graph.add_edge(111, 96)
        self.graph.add_edge(68, 56)
        self.graph.add_edge(142, 36)
        self.graph.add_edge(122, 164)
        self.graph.add_edge(150, 148)
        self.graph.add_edge(56, 6)
        self.graph.add_edge(49, 104)
        self.graph.add_edge(98, 32)
        self.graph.add_edge(147, 94)
        self.graph.add_edge(1, 80)
        self.graph.add_edge(58, 134)
        self.graph.add_edge(16, 8)
        self.graph.add_edge(30, 56)
        self.graph.add_edge(66, 144)
        self.graph.add_edge(143, 128)
        self.graph.add_edge(22, 94)
        self.graph.add_edge(98, 82)
        self.graph.add_edge(17, 26)
        self.graph.add_edge(35, 78)
        self.graph.add_edge(72, 80)
        self.graph.add_edge(142, 64)
        self.graph.add_edge(35, 18)
        self.graph.add_edge(122, 100)
        self.graph.add_edge(125, 24)
        self.graph.add_edge(143, 164)
        self.graph.add_edge(151, 52)
        self.graph.add_edge(142, 80)
        self.graph.add_edge(156, 1)
        self.graph.add_edge(117, 104)
        self.graph.add_edge(122, 30)
        self.graph.add_edge(132, 64)
        self.graph.add_edge(53, 26)
        self.graph.add_edge(2, 34)
        self.graph.add_edge(36, 160)
        self.graph.add_edge(158, 150)
        self.graph.add_edge(124, 8)
        self.graph.add_edge(54, 38)
        self.graph.add_edge(81, 44)
        self.graph.add_edge(137, 120)
        self.graph.add_edge(87, 138)
        self.graph.add_edge(126, 127)
        self.graph.add_edge(48, 134)
        self.graph.add_edge(104, 30)
        self.graph.add_edge(115, 70)
        self.graph.add_edge(63, 2)
        self.graph.add_edge(102, 92)
        self.graph.add_edge(90, 72)
        self.graph.add_edge(3, 72)
        self.graph.add_edge(58, 92)
        self.graph.add_edge(23, 108)
        self.graph.add_edge(90, 160)
        self.graph.add_edge(120, 138)
        self.graph.add_edge(83, 114)
        self.graph.add_edge(10, 52)
        self.graph.add_edge(144, 108)
        self.graph.add_edge(101, 114)
        self.graph.add_edge(108, 154)
        self.graph.add_edge(117, 96)
        self.graph.add_edge(14, 40)
        self.graph.add_edge(160, 48)
        self.graph.add_edge(95, 38)
        self.graph.add_edge(119, 36)
        self.graph.add_edge(151, 136)
        self.graph.add_edge(23, 74)
        self.graph.add_edge(65, 98)
        self.graph.add_edge(146, 78)
        self.graph.add_edge(71, 26)
        self.graph.add_edge(105, 92)
        self.graph.add_edge(145, 138)
        self.graph.add_edge(77, 10)
        self.graph.add_edge(24, 122)
        self.graph.add_edge(149, 48)
        self.graph.add_edge(23, 2)
        self.graph.add_edge(92, 134)
        self.graph.add_edge(103, 18)
        self.graph.add_edge(91, 96)
        self.graph.add_edge(11, 22)
        self.graph.add_edge(70, 152)
        self.graph.add_edge(96, 162)
        self.graph.add_edge(94, 88)
        self.graph.add_edge(75, 122)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(144, 52)
        self.graph.add_edge(145, 74)
        self.graph.add_edge(75, 38)
        self.graph.add_edge(152, 88)
        self.graph.add_edge(139, 132)
        self.graph.add_edge(78, 50)
        self.graph.add_edge(15, 60)
        self.graph.add_edge(131, 78)
        self.graph.add_edge(83, 22)
        self.graph.add_edge(72, 44)
        self.graph.add_edge(1, 126)
        self.graph.add_edge(120, 136)
        self.graph.add_edge(41, 42)
        self.graph.add_edge(82, 74)
        self.graph.add_edge(18, 19)
        self.graph.add_edge(155, 32)
        self.graph.add_edge(27, 144)
        self.graph.add_edge(155, 28)
        self.graph.add_edge(99, 40)
        self.graph.add_edge(32, 102)
        self.graph.add_edge(3, 162)
        self.graph.add_edge(81, 16)
        self.graph.add_edge(154, 108)
        self.graph.add_edge(5, 114)
        self.graph.add_edge(150, 10)
        self.graph.add_edge(131, 68)
        self.graph.add_edge(163, 90)
        self.graph.add_edge(50, 64)
        self.graph.add_edge(64, 158)
        self.graph.add_edge(31, 102)
        self.graph.add_edge(73, 38)
        self.graph.add_edge(83, 68)
        self.graph.add_edge(64, 14)
        self.graph.add_edge(87, 100)
        self.graph.add_edge(15, 36)
        self.graph.add_edge(137, 34)
        self.graph.add_edge(114, 42)
        self.graph.add_edge(61, 80)
        self.graph.add_edge(54, 62)
        self.graph.add_edge(99, 74)
        self.graph.add_edge(154, 28)
        self.graph.add_edge(133, 12)
        self.graph.add_edge(161, 86)
        self.graph.add_edge(79, 158)
        self.graph.add_edge(79, 82)
        self.graph.add_edge(10, 146)
        self.graph.add_edge(150, 48)
        self.graph.add_edge(72, 6)
        self.graph.add_edge(107, 92)
        self.graph.add_edge(88, 80)
        self.graph.add_edge(19, 8)
        self.graph.add_edge(162, 10)
        self.graph.add_edge(118, 58)
        self.graph.add_edge(99, 10)
        self.graph.add_edge(84, 94)
        self.graph.add_edge(59, 86)
        self.graph.add_edge(93, 84)
        return super().setUp()

    def test_case_15(self):
        self.graph.get_all_paths()
        self.graph.get_costs()
        self.assertEqual(self.graph.get_costs(), [
            18, 30, 24, -1, 24, 24, 18, 12, 24, 18, 24, 18, 30, 24, 24, 18, 30,
            24, 18, -1, 24, 18, 24, 18, 24, 24, 24, 18, -1, 18, 18, 18, -1, 30,
            18, 18, -1, 24, 12, 18, 6, 12, 30, 24, 12, 24, 24, 18, 30, 24, 24,
            18, 30, 18, -1, 24, 24, 12, 30, 24, 18, 24, 24, 24, 30, 24, 18, 30,
            -1, 6, 24, 18, 24, 30, 18, 30, 24, 24, 18, 12, 18, 24, 24, 18, -1,
            30, 24, 6, 18, 18, 30, 6, 24, 12, 30, 24, 24, 24, 24, 18, 24, 12,
            18, 24, 12, 24, 12, 18, 24, 18, 30, 30, 24, 18, 12, 12, 24, 18, 24,
            30, 30, 12, 24, 18, 18, 24, 30, 24, -1, 18, 30, 18, 24, 12, -1, 24,
            30, 24, 24, 24, -1, 18, 18, 24, 30, 24, 18, 24, 24, 18, 24, -1, 24,
            24, 24, 36, 24, 18, 24, 30, 18, 24, 18, 30
        ])

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()
class TestBFS_Case_7(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 22
        self.graph = Graph(self.START)
        self.graph.add_edge(50, 392)
        self.graph.add_edge(1, 44)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(1, 45)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 12)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 11)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(1, 11)
        self.graph.add_edge(1, 9)
        self.graph.add_edge(1, 9)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 49)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 20)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 20)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 45)
        self.graph.add_edge(1, 43)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 50)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 7)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 34)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 32)
        self.graph.add_edge(1, 40)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 47)
        self.graph.add_edge(1, 40)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 43)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 5)
        self.graph.add_edge(1, 9)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 39)
        self.graph.add_edge(1, 39)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 21)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 39)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 10)
        self.graph.add_edge(1, 11)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(1, 47)
        self.graph.add_edge(1, 45)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 34)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 7)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 30)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 39)
        self.graph.add_edge(1, 49)
        self.graph.add_edge(1, 34)
        self.graph.add_edge(1, 44)
        self.graph.add_edge(1, 21)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 47)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 32)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(1, 6)
        self.graph.add_edge(1, 40)
        self.graph.add_edge(1, 44)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 34)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 45)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 14)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 44)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 34)
        self.graph.add_edge(1, 11)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 40)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 7)
        self.graph.add_edge(1, 32)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 47)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(1, 31)
        self.graph.add_edge(1, 26)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 43)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 12)
        self.graph.add_edge(1, 26)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 34)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 32)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 32)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 6)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(1, 9)
        self.graph.add_edge(1, 5)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 6)
        self.graph.add_edge(1, 30)
        self.graph.add_edge(1, 14)
        self.graph.add_edge(1, 4)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 38)
        self.graph.add_edge(1, 12)
        self.graph.add_edge(1, 11)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(1, 14)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 31)
        self.graph.add_edge(1, 20)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(1, 20)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 40)
        self.graph.add_edge(1, 5)
        self.graph.add_edge(1, 30)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 40)
        self.graph.add_edge(1, 11)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 43)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 5)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(1, 6)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 34)
        self.graph.add_edge(1, 39)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 4)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 9)
        self.graph.add_edge(1, 31)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 44)
        self.graph.add_edge(1, 26)
        self.graph.add_edge(1, 49)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(1, 49)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(1, 50)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 49)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 6)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 14)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 26)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 45)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 3)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 4)
        self.graph.add_edge(1, 20)
        self.graph.add_edge(1, 47)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(1, 50)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(1, 30)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 10)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 30)
        self.graph.add_edge(1, 21)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 4)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(1, 6)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(1, 32)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 11)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(1, 30)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 30)
        self.graph.add_edge(1, 40)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 4)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(1, 50)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 44)
        self.graph.add_edge(1, 29)
        self.graph.add_edge(1, 50)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 32)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 12)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 42)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 10)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 31)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 28)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 31)
        self.graph.add_edge(1, 4)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 10)
        self.graph.add_edge(1, 31)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 37)
        self.graph.add_edge(1, 14)
        self.graph.add_edge(1, 22)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 24)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 23)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 17)
        self.graph.add_edge(1, 33)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 41)
        self.graph.add_edge(1, 25)
        self.graph.add_edge(1, 8)
        self.graph.add_edge(1, 46)
        self.graph.add_edge(1, 4)
        self.graph.add_edge(1, 26)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(1, 45)
        self.graph.add_edge(1, 48)
        self.graph.add_edge(1, 35)
        self.graph.add_edge(1, 40)
        self.graph.add_edge(1, 19)
        self.graph.add_edge(1, 36)
        self.graph.add_edge(1, 49)
        return super().setUp()

    def test_case_7(self):
        self.graph.get_all_paths()
        self.graph.get_costs()
        self.assertEqual(self.graph.get_costs(), [
            6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
            12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
            12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12
        ])

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()
Beispiel #7
0
class TestBFS_Case_16(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 76
        self.graph = Graph(self.START)
        self.graph.add_edge(515, 804)
        self.graph.add_edge(12, 344)
        self.graph.add_edge(387, 256)
        self.graph.add_edge(507, 508)
        self.graph.add_edge(258, 300)
        self.graph.add_edge(222, 132)
        self.graph.add_edge(12, 264)
        self.graph.add_edge(219, 1)
        self.graph.add_edge(51, 284)
        self.graph.add_edge(297, 452)
        self.graph.add_edge(315, 272)
        self.graph.add_edge(132, 272)
        self.graph.add_edge(270, 468)
        self.graph.add_edge(66, 356)
        self.graph.add_edge(345, 236)
        self.graph.add_edge(93, 20)
        self.graph.add_edge(294, 168)
        self.graph.add_edge(396, 264)
        self.graph.add_edge(405, 104)
        self.graph.add_edge(273, 260)
        self.graph.add_edge(252, 512)
        self.graph.add_edge(249, 480)
        self.graph.add_edge(462, 248)
        self.graph.add_edge(219, 168)
        self.graph.add_edge(219, 236)
        self.graph.add_edge(333, 248)
        self.graph.add_edge(402, 488)
        self.graph.add_edge(42, 268)
        self.graph.add_edge(180, 164)
        self.graph.add_edge(279, 464)
        self.graph.add_edge(39, 80)
        self.graph.add_edge(480, 140)
        self.graph.add_edge(150, 220)
        self.graph.add_edge(18, 476)
        self.graph.add_edge(138, 416)
        self.graph.add_edge(69, 384)
        self.graph.add_edge(297, 232)
        self.graph.add_edge(135, 84)
        self.graph.add_edge(102, 428)
        self.graph.add_edge(399, 132)
        self.graph.add_edge(141, 232)
        self.graph.add_edge(300, 400)
        self.graph.add_edge(312, 388)
        self.graph.add_edge(489, 244)
        self.graph.add_edge(258, 424)
        self.graph.add_edge(132, 248)
        self.graph.add_edge(51, 220)
        self.graph.add_edge(207, 488)
        self.graph.add_edge(90, 140)
        self.graph.add_edge(306, 176)
        self.graph.add_edge(87, 260)
        self.graph.add_edge(174, 228)
        self.graph.add_edge(57, 300)
        self.graph.add_edge(18, 332)
        self.graph.add_edge(36, 404)
        self.graph.add_edge(66, 308)
        self.graph.add_edge(18, 128)
        self.graph.add_edge(252, 172)
        self.graph.add_edge(354, 300)
        self.graph.add_edge(474, 196)
        self.graph.add_edge(345, 192)
        self.graph.add_edge(246, 4)
        self.graph.add_edge(405, 228)
        self.graph.add_edge(348, 64)
        self.graph.add_edge(480, 208)
        self.graph.add_edge(276, 112)
        self.graph.add_edge(228, 324)
        self.graph.add_edge(1, 436)
        self.graph.add_edge(183, 344)
        self.graph.add_edge(204, 300)
        self.graph.add_edge(264, 112)
        self.graph.add_edge(216, 212)
        self.graph.add_edge(225, 248)
        self.graph.add_edge(114, 124)
        self.graph.add_edge(288, 240)
        self.graph.add_edge(312, 260)
        self.graph.add_edge(456, 292)
        self.graph.add_edge(456, 296)
        self.graph.add_edge(84, 136)
        self.graph.add_edge(429, 456)
        self.graph.add_edge(78, 396)
        self.graph.add_edge(465, 140)
        self.graph.add_edge(504, 80)
        self.graph.add_edge(327, 504)
        self.graph.add_edge(492, 60)
        self.graph.add_edge(339, 364)
        self.graph.add_edge(237, 72)
        self.graph.add_edge(258, 280)
        self.graph.add_edge(264, 340)
        self.graph.add_edge(159, 308)
        self.graph.add_edge(21, 36)
        self.graph.add_edge(99, 192)
        self.graph.add_edge(69, 68)
        self.graph.add_edge(414, 16)
        self.graph.add_edge(117, 440)
        self.graph.add_edge(321, 420)
        self.graph.add_edge(240, 360)
        self.graph.add_edge(312, 124)
        self.graph.add_edge(168, 488)
        self.graph.add_edge(12, 60)
        self.graph.add_edge(123, 380)
        self.graph.add_edge(18, 256)
        self.graph.add_edge(264, 488)
        self.graph.add_edge(438, 172)
        self.graph.add_edge(108, 220)
        self.graph.add_edge(102, 12)
        self.graph.add_edge(318, 492)
        self.graph.add_edge(471, 268)
        self.graph.add_edge(345, 488)
        self.graph.add_edge(120, 388)
        self.graph.add_edge(492, 24)
        self.graph.add_edge(504, 400)
        self.graph.add_edge(72, 84)
        self.graph.add_edge(237, 64)
        self.graph.add_edge(12, 392)
        self.graph.add_edge(438, 424)
        self.graph.add_edge(234, 112)
        self.graph.add_edge(318, 368)
        self.graph.add_edge(504, 480)
        self.graph.add_edge(486, 208)
        self.graph.add_edge(381, 432)
        self.graph.add_edge(279, 336)
        self.graph.add_edge(27, 296)
        self.graph.add_edge(180, 264)
        self.graph.add_edge(180, 140)
        self.graph.add_edge(438, 64)
        self.graph.add_edge(468, 44)
        self.graph.add_edge(138, 72)
        self.graph.add_edge(348, 144)
        self.graph.add_edge(1, 484)
        self.graph.add_edge(36, 124)
        self.graph.add_edge(48, 464)
        self.graph.add_edge(195, 336)
        self.graph.add_edge(69, 452)
        self.graph.add_edge(450, 400)
        self.graph.add_edge(453, 196)
        self.graph.add_edge(318, 292)
        self.graph.add_edge(366, 452)
        self.graph.add_edge(207, 396)
        self.graph.add_edge(222, 472)
        self.graph.add_edge(489, 140)
        self.graph.add_edge(477, 28)
        self.graph.add_edge(342, 48)
        self.graph.add_edge(384, 284)
        self.graph.add_edge(132, 412)
        self.graph.add_edge(225, 112)
        self.graph.add_edge(411, 476)
        self.graph.add_edge(225, 480)
        self.graph.add_edge(90, 132)
        self.graph.add_edge(309, 8)
        self.graph.add_edge(390, 152)
        self.graph.add_edge(351, 216)
        self.graph.add_edge(180, 228)
        self.graph.add_edge(348, 192)
        self.graph.add_edge(375, 8)
        self.graph.add_edge(342, 36)
        self.graph.add_edge(321, 508)
        self.graph.add_edge(492, 364)
        self.graph.add_edge(42, 176)
        self.graph.add_edge(441, 212)
        self.graph.add_edge(366, 188)
        self.graph.add_edge(297, 260)
        self.graph.add_edge(258, 252)
        self.graph.add_edge(54, 396)
        self.graph.add_edge(372, 80)
        self.graph.add_edge(48, 100)
        self.graph.add_edge(48, 240)
        self.graph.add_edge(216, 88)
        self.graph.add_edge(27, 476)
        self.graph.add_edge(3, 160)
        self.graph.add_edge(171, 360)
        self.graph.add_edge(75, 300)
        self.graph.add_edge(408, 312)
        self.graph.add_edge(390, 264)
        self.graph.add_edge(495, 508)
        self.graph.add_edge(345, 200)
        self.graph.add_edge(228, 392)
        self.graph.add_edge(387, 188)
        self.graph.add_edge(393, 388)
        self.graph.add_edge(348, 396)
        self.graph.add_edge(105, 312)
        self.graph.add_edge(309, 500)
        self.graph.add_edge(147, 452)
        self.graph.add_edge(201, 296)
        self.graph.add_edge(15, 192)
        self.graph.add_edge(153, 460)
        self.graph.add_edge(258, 164)
        self.graph.add_edge(261, 424)
        self.graph.add_edge(69, 364)
        self.graph.add_edge(270, 92)
        self.graph.add_edge(234, 424)
        self.graph.add_edge(312, 88)
        self.graph.add_edge(219, 84)
        self.graph.add_edge(342, 64)
        self.graph.add_edge(411, 348)
        self.graph.add_edge(192, 288)
        self.graph.add_edge(333, 260)
        self.graph.add_edge(9, 88)
        self.graph.add_edge(24, 272)
        self.graph.add_edge(444, 36)
        self.graph.add_edge(279, 272)
        self.graph.add_edge(45, 40)
        self.graph.add_edge(93, 276)
        self.graph.add_edge(396, 344)
        self.graph.add_edge(189, 260)
        self.graph.add_edge(321, 88)
        self.graph.add_edge(495, 152)
        self.graph.add_edge(222, 496)
        self.graph.add_edge(342, 72)
        self.graph.add_edge(513, 456)
        self.graph.add_edge(249, 312)
        self.graph.add_edge(345, 16)
        self.graph.add_edge(312, 200)
        self.graph.add_edge(453, 340)
        self.graph.add_edge(39, 288)
        self.graph.add_edge(231, 448)
        self.graph.add_edge(252, 404)
        self.graph.add_edge(267, 436)
        self.graph.add_edge(492, 332)
        self.graph.add_edge(453, 404)
        self.graph.add_edge(60, 56)
        self.graph.add_edge(228, 368)
        self.graph.add_edge(222, 504)
        self.graph.add_edge(315, 244)
        self.graph.add_edge(438, 76)
        self.graph.add_edge(177, 1)
        self.graph.add_edge(327, 276)
        self.graph.add_edge(471, 440)
        self.graph.add_edge(129, 484)
        self.graph.add_edge(378, 20)
        self.graph.add_edge(339, 508)
        self.graph.add_edge(357, 484)
        self.graph.add_edge(105, 340)
        self.graph.add_edge(504, 352)
        self.graph.add_edge(447, 428)
        self.graph.add_edge(210, 424)
        self.graph.add_edge(345, 144)
        self.graph.add_edge(24, 28)
        self.graph.add_edge(390, 436)
        self.graph.add_edge(96, 488)
        self.graph.add_edge(147, 144)
        self.graph.add_edge(483, 436)
        self.graph.add_edge(180, 432)
        self.graph.add_edge(102, 228)
        self.graph.add_edge(420, 504)
        self.graph.add_edge(183, 100)
        self.graph.add_edge(45, 116)
        self.graph.add_edge(351, 272)
        self.graph.add_edge(315, 168)
        self.graph.add_edge(258, 312)
        self.graph.add_edge(153, 344)
        self.graph.add_edge(477, 372)
        self.graph.add_edge(129, 332)
        self.graph.add_edge(36, 496)
        self.graph.add_edge(72, 132)
        self.graph.add_edge(384, 64)
        self.graph.add_edge(237, 144)
        self.graph.add_edge(192, 292)
        self.graph.add_edge(381, 152)
        self.graph.add_edge(474, 252)
        self.graph.add_edge(135, 108)
        self.graph.add_edge(99, 136)
        self.graph.add_edge(489, 304)
        self.graph.add_edge(39, 460)
        self.graph.add_edge(510, 48)
        self.graph.add_edge(51, 196)
        self.graph.add_edge(483, 64)
        self.graph.add_edge(141, 224)
        self.graph.add_edge(48, 380)
        self.graph.add_edge(360, 236)
        self.graph.add_edge(279, 368)
        self.graph.add_edge(75, 12)
        self.graph.add_edge(399, 12)
        self.graph.add_edge(243, 292)
        self.graph.add_edge(258, 288)
        self.graph.add_edge(408, 232)
        self.graph.add_edge(204, 380)
        self.graph.add_edge(189, 472)
        self.graph.add_edge(210, 268)
        self.graph.add_edge(123, 156)
        self.graph.add_edge(390, 212)
        self.graph.add_edge(42, 28)
        self.graph.add_edge(276, 156)
        self.graph.add_edge(294, 344)
        self.graph.add_edge(474, 248)
        self.graph.add_edge(72, 432)
        self.graph.add_edge(96, 444)
        self.graph.add_edge(309, 476)
        self.graph.add_edge(6, 272)
        self.graph.add_edge(312, 396)
        self.graph.add_edge(342, 224)
        self.graph.add_edge(351, 152)
        self.graph.add_edge(144, 416)
        self.graph.add_edge(450, 296)
        self.graph.add_edge(177, 444)
        self.graph.add_edge(297, 24)
        self.graph.add_edge(486, 188)
        self.graph.add_edge(183, 220)
        self.graph.add_edge(198, 236)
        self.graph.add_edge(324, 208)
        self.graph.add_edge(210, 484)
        self.graph.add_edge(129, 84)
        self.graph.add_edge(507, 504)
        self.graph.add_edge(123, 60)
        self.graph.add_edge(513, 364)
        self.graph.add_edge(111, 56)
        self.graph.add_edge(90, 188)
        self.graph.add_edge(375, 264)
        self.graph.add_edge(186, 412)
        self.graph.add_edge(15, 92)
        self.graph.add_edge(114, 300)
        self.graph.add_edge(411, 348)
        self.graph.add_edge(495, 96)
        self.graph.add_edge(219, 164)
        self.graph.add_edge(351, 244)
        self.graph.add_edge(432, 456)
        self.graph.add_edge(117, 420)
        self.graph.add_edge(405, 132)
        self.graph.add_edge(336, 252)
        self.graph.add_edge(423, 216)
        self.graph.add_edge(429, 184)
        self.graph.add_edge(153, 152)
        self.graph.add_edge(186, 228)
        self.graph.add_edge(60, 312)
        self.graph.add_edge(195, 380)
        self.graph.add_edge(453, 96)
        self.graph.add_edge(408, 156)
        self.graph.add_edge(261, 264)
        self.graph.add_edge(444, 512)
        self.graph.add_edge(48, 36)
        self.graph.add_edge(171, 64)
        self.graph.add_edge(249, 64)
        self.graph.add_edge(402, 232)
        self.graph.add_edge(270, 108)
        self.graph.add_edge(438, 236)
        self.graph.add_edge(51, 336)
        self.graph.add_edge(330, 88)
        self.graph.add_edge(252, 152)
        self.graph.add_edge(45, 452)
        self.graph.add_edge(18, 48)
        self.graph.add_edge(219, 404)
        self.graph.add_edge(327, 40)
        self.graph.add_edge(21, 408)
        self.graph.add_edge(417, 72)
        self.graph.add_edge(3, 156)
        self.graph.add_edge(72, 404)
        self.graph.add_edge(264, 176)
        self.graph.add_edge(219, 76)
        self.graph.add_edge(390, 168)
        self.graph.add_edge(279, 64)
        self.graph.add_edge(150, 48)
        self.graph.add_edge(414, 344)
        self.graph.add_edge(348, 248)
        self.graph.add_edge(54, 436)
        self.graph.add_edge(261, 280)
        self.graph.add_edge(486, 260)
        self.graph.add_edge(198, 124)
        self.graph.add_edge(57, 44)
        self.graph.add_edge(486, 356)
        self.graph.add_edge(441, 80)
        self.graph.add_edge(486, 136)
        self.graph.add_edge(510, 168)
        self.graph.add_edge(1, 220)
        self.graph.add_edge(114, 384)
        self.graph.add_edge(441, 36)
        self.graph.add_edge(420, 324)
        self.graph.add_edge(480, 508)
        self.graph.add_edge(456, 160)
        self.graph.add_edge(258, 4)
        self.graph.add_edge(210, 356)
        self.graph.add_edge(324, 356)
        self.graph.add_edge(294, 332)
        self.graph.add_edge(231, 416)
        self.graph.add_edge(255, 368)
        self.graph.add_edge(66, 20)
        self.graph.add_edge(231, 480)
        self.graph.add_edge(105, 88)
        self.graph.add_edge(162, 40)
        self.graph.add_edge(459, 300)
        self.graph.add_edge(66, 372)
        self.graph.add_edge(291, 360)
        self.graph.add_edge(498, 184)
        self.graph.add_edge(339, 192)
        self.graph.add_edge(21, 368)
        self.graph.add_edge(9, 60)
        self.graph.add_edge(288, 312)
        self.graph.add_edge(246, 112)
        self.graph.add_edge(1, 296)
        self.graph.add_edge(411, 292)
        self.graph.add_edge(450, 120)
        self.graph.add_edge(267, 400)
        self.graph.add_edge(225, 176)
        self.graph.add_edge(366, 232)
        self.graph.add_edge(420, 356)
        self.graph.add_edge(147, 464)
        self.graph.add_edge(27, 80)
        self.graph.add_edge(195, 60)
        self.graph.add_edge(267, 368)
        self.graph.add_edge(372, 196)
        self.graph.add_edge(258, 136)
        self.graph.add_edge(21, 160)
        self.graph.add_edge(9, 448)
        self.graph.add_edge(444, 344)
        self.graph.add_edge(483, 192)
        self.graph.add_edge(294, 256)
        self.graph.add_edge(285, 224)
        self.graph.add_edge(318, 112)
        self.graph.add_edge(486, 148)
        self.graph.add_edge(291, 96)
        self.graph.add_edge(405, 300)
        self.graph.add_edge(102, 316)
        self.graph.add_edge(450, 68)
        self.graph.add_edge(42, 320)
        self.graph.add_edge(9, 316)
        self.graph.add_edge(339, 400)
        self.graph.add_edge(42, 320)
        self.graph.add_edge(318, 120)
        self.graph.add_edge(459, 400)
        self.graph.add_edge(90, 364)
        self.graph.add_edge(3, 332)
        self.graph.add_edge(267, 108)
        self.graph.add_edge(447, 316)
        self.graph.add_edge(267, 168)
        self.graph.add_edge(303, 352)
        self.graph.add_edge(288, 44)
        self.graph.add_edge(243, 220)
        self.graph.add_edge(93, 436)
        self.graph.add_edge(498, 260)
        self.graph.add_edge(396, 332)
        self.graph.add_edge(159, 384)
        self.graph.add_edge(84, 240)
        self.graph.add_edge(312, 228)
        self.graph.add_edge(27, 216)
        self.graph.add_edge(108, 328)
        self.graph.add_edge(348, 212)
        self.graph.add_edge(393, 512)
        self.graph.add_edge(375, 372)
        self.graph.add_edge(282, 304)
        self.graph.add_edge(333, 364)
        self.graph.add_edge(318, 364)
        self.graph.add_edge(243, 132)
        self.graph.add_edge(408, 476)
        self.graph.add_edge(99, 440)
        self.graph.add_edge(351, 204)
        self.graph.add_edge(408, 268)
        self.graph.add_edge(429, 28)
        self.graph.add_edge(114, 260)
        self.graph.add_edge(279, 92)
        self.graph.add_edge(372, 408)
        self.graph.add_edge(363, 148)
        self.graph.add_edge(285, 508)
        self.graph.add_edge(156, 28)
        self.graph.add_edge(462, 348)
        self.graph.add_edge(282, 228)
        self.graph.add_edge(21, 312)
        self.graph.add_edge(141, 24)
        self.graph.add_edge(342, 100)
        self.graph.add_edge(159, 144)
        self.graph.add_edge(81, 24)
        self.graph.add_edge(9, 96)
        self.graph.add_edge(99, 368)
        self.graph.add_edge(363, 132)
        self.graph.add_edge(90, 40)
        self.graph.add_edge(132, 140)
        self.graph.add_edge(375, 88)
        self.graph.add_edge(156, 164)
        self.graph.add_edge(366, 144)
        self.graph.add_edge(39, 496)
        self.graph.add_edge(507, 184)
        self.graph.add_edge(177, 400)
        self.graph.add_edge(39, 76)
        self.graph.add_edge(399, 472)
        self.graph.add_edge(30, 16)
        self.graph.add_edge(408, 376)
        self.graph.add_edge(507, 500)
        self.graph.add_edge(129, 404)
        self.graph.add_edge(321, 44)
        self.graph.add_edge(150, 304)
        self.graph.add_edge(375, 264)
        self.graph.add_edge(60, 488)
        self.graph.add_edge(6, 392)
        self.graph.add_edge(339, 176)
        self.graph.add_edge(483, 16)
        self.graph.add_edge(312, 324)
        self.graph.add_edge(171, 104)
        self.graph.add_edge(381, 488)
        self.graph.add_edge(186, 320)
        self.graph.add_edge(468, 152)
        self.graph.add_edge(138, 28)
        self.graph.add_edge(336, 8)
        self.graph.add_edge(264, 288)
        self.graph.add_edge(321, 52)
        self.graph.add_edge(333, 328)
        self.graph.add_edge(273, 280)
        self.graph.add_edge(462, 272)
        self.graph.add_edge(96, 480)
        self.graph.add_edge(402, 340)
        self.graph.add_edge(189, 504)
        self.graph.add_edge(183, 452)
        self.graph.add_edge(495, 120)
        self.graph.add_edge(258, 12)
        self.graph.add_edge(132, 304)
        self.graph.add_edge(447, 352)
        self.graph.add_edge(84, 216)
        self.graph.add_edge(303, 88)
        self.graph.add_edge(129, 328)
        self.graph.add_edge(246, 328)
        self.graph.add_edge(195, 292)
        self.graph.add_edge(288, 132)
        self.graph.add_edge(15, 196)
        self.graph.add_edge(171, 124)
        self.graph.add_edge(195, 116)
        self.graph.add_edge(138, 184)
        self.graph.add_edge(324, 452)
        self.graph.add_edge(27, 172)
        self.graph.add_edge(210, 236)
        self.graph.add_edge(207, 20)
        self.graph.add_edge(384, 52)
        self.graph.add_edge(258, 72)
        self.graph.add_edge(375, 280)
        self.graph.add_edge(321, 488)
        self.graph.add_edge(141, 324)
        self.graph.add_edge(111, 216)
        self.graph.add_edge(174, 328)
        self.graph.add_edge(450, 372)
        self.graph.add_edge(195, 456)
        self.graph.add_edge(282, 464)
        self.graph.add_edge(117, 304)
        self.graph.add_edge(504, 116)
        self.graph.add_edge(318, 356)
        self.graph.add_edge(51, 32)
        self.graph.add_edge(330, 8)
        self.graph.add_edge(60, 48)
        self.graph.add_edge(117, 456)
        self.graph.add_edge(54, 100)
        self.graph.add_edge(186, 484)
        self.graph.add_edge(60, 296)
        self.graph.add_edge(363, 140)
        self.graph.add_edge(171, 136)
        self.graph.add_edge(510, 396)
        self.graph.add_edge(171, 364)
        self.graph.add_edge(42, 304)
        self.graph.add_edge(330, 464)
        self.graph.add_edge(474, 32)
        self.graph.add_edge(369, 20)
        self.graph.add_edge(78, 44)
        self.graph.add_edge(234, 320)
        self.graph.add_edge(180, 64)
        self.graph.add_edge(222, 352)
        self.graph.add_edge(333, 324)
        self.graph.add_edge(456, 348)
        self.graph.add_edge(192, 208)
        self.graph.add_edge(399, 464)
        self.graph.add_edge(399, 196)
        self.graph.add_edge(471, 88)
        self.graph.add_edge(180, 100)
        self.graph.add_edge(150, 272)
        self.graph.add_edge(321, 164)
        self.graph.add_edge(216, 268)
        self.graph.add_edge(354, 224)
        self.graph.add_edge(120, 496)
        self.graph.add_edge(180, 392)
        self.graph.add_edge(249, 100)
        self.graph.add_edge(63, 268)
        self.graph.add_edge(36, 484)
        self.graph.add_edge(513, 264)
        self.graph.add_edge(324, 292)
        self.graph.add_edge(177, 504)
        self.graph.add_edge(171, 204)
        self.graph.add_edge(381, 8)
        self.graph.add_edge(171, 400)
        self.graph.add_edge(54, 468)
        self.graph.add_edge(204, 324)
        self.graph.add_edge(261, 68)
        self.graph.add_edge(183, 352)
        self.graph.add_edge(18, 264)
        self.graph.add_edge(147, 276)
        self.graph.add_edge(273, 84)
        self.graph.add_edge(408, 320)
        self.graph.add_edge(399, 236)
        self.graph.add_edge(396, 68)
        self.graph.add_edge(330, 128)
        self.graph.add_edge(393, 252)
        self.graph.add_edge(261, 252)
        self.graph.add_edge(228, 484)
        self.graph.add_edge(414, 140)
        self.graph.add_edge(219, 316)
        self.graph.add_edge(306, 472)
        self.graph.add_edge(372, 316)
        self.graph.add_edge(237, 324)
        self.graph.add_edge(441, 492)
        self.graph.add_edge(501, 68)
        self.graph.add_edge(279, 104)
        self.graph.add_edge(3, 8)
        self.graph.add_edge(255, 452)
        self.graph.add_edge(225, 364)
        self.graph.add_edge(63, 92)
        self.graph.add_edge(219, 32)
        self.graph.add_edge(153, 488)
        self.graph.add_edge(432, 268)
        self.graph.add_edge(369, 148)
        self.graph.add_edge(177, 384)
        self.graph.add_edge(366, 436)
        self.graph.add_edge(219, 388)
        self.graph.add_edge(327, 364)
        self.graph.add_edge(393, 84)
        self.graph.add_edge(456, 408)
        self.graph.add_edge(243, 68)
        self.graph.add_edge(144, 412)
        self.graph.add_edge(216, 412)
        self.graph.add_edge(177, 164)
        self.graph.add_edge(243, 280)
        self.graph.add_edge(420, 328)
        self.graph.add_edge(456, 484)
        self.graph.add_edge(93, 176)
        self.graph.add_edge(99, 344)
        self.graph.add_edge(387, 176)
        self.graph.add_edge(237, 288)
        self.graph.add_edge(501, 276)
        self.graph.add_edge(93, 232)
        self.graph.add_edge(81, 20)
        self.graph.add_edge(57, 312)
        self.graph.add_edge(372, 20)
        self.graph.add_edge(84, 60)
        self.graph.add_edge(21, 152)
        self.graph.add_edge(183, 140)
        self.graph.add_edge(51, 368)
        self.graph.add_edge(147, 12)
        self.graph.add_edge(45, 356)
        self.graph.add_edge(429, 328)
        self.graph.add_edge(192, 240)
        self.graph.add_edge(345, 416)
        self.graph.add_edge(54, 336)
        self.graph.add_edge(453, 48)
        self.graph.add_edge(12, 328)
        self.graph.add_edge(384, 296)
        self.graph.add_edge(234, 64)
        self.graph.add_edge(429, 176)
        self.graph.add_edge(183, 220)
        self.graph.add_edge(192, 112)
        self.graph.add_edge(207, 416)
        self.graph.add_edge(1, 484)
        self.graph.add_edge(456, 360)
        self.graph.add_edge(108, 240)
        self.graph.add_edge(372, 224)
        self.graph.add_edge(195, 348)
        self.graph.add_edge(240, 1)
        self.graph.add_edge(306, 416)
        self.graph.add_edge(153, 460)
        self.graph.add_edge(126, 1)
        self.graph.add_edge(450, 248)
        self.graph.add_edge(501, 356)
        self.graph.add_edge(177, 188)
        self.graph.add_edge(282, 144)
        self.graph.add_edge(483, 304)
        self.graph.add_edge(24, 32)
        self.graph.add_edge(438, 300)
        self.graph.add_edge(408, 176)
        self.graph.add_edge(69, 420)
        self.graph.add_edge(102, 356)
        self.graph.add_edge(453, 436)
        self.graph.add_edge(81, 44)
        self.graph.add_edge(330, 264)
        self.graph.add_edge(174, 36)
        self.graph.add_edge(249, 460)
        self.graph.add_edge(93, 356)
        self.graph.add_edge(300, 32)
        self.graph.add_edge(174, 204)
        self.graph.add_edge(147, 160)
        self.graph.add_edge(387, 44)
        self.graph.add_edge(129, 280)
        self.graph.add_edge(210, 292)
        self.graph.add_edge(93, 8)
        self.graph.add_edge(261, 268)
        self.graph.add_edge(138, 120)
        self.graph.add_edge(441, 284)
        self.graph.add_edge(6, 404)
        self.graph.add_edge(426, 476)
        self.graph.add_edge(342, 244)
        self.graph.add_edge(141, 264)
        self.graph.add_edge(66, 60)
        self.graph.add_edge(351, 436)
        self.graph.add_edge(78, 388)
        self.graph.add_edge(141, 276)
        self.graph.add_edge(24, 464)
        self.graph.add_edge(471, 100)
        self.graph.add_edge(48, 484)
        self.graph.add_edge(168, 204)
        self.graph.add_edge(93, 76)
        self.graph.add_edge(441, 152)
        self.graph.add_edge(447, 404)
        self.graph.add_edge(273, 468)
        self.graph.add_edge(417, 392)
        self.graph.add_edge(72, 392)
        self.graph.add_edge(303, 504)
        self.graph.add_edge(243, 416)
        self.graph.add_edge(495, 472)
        self.graph.add_edge(471, 472)
        self.graph.add_edge(228, 28)
        self.graph.add_edge(273, 120)
        self.graph.add_edge(495, 108)
        self.graph.add_edge(117, 156)
        self.graph.add_edge(321, 300)
        self.graph.add_edge(153, 124)
        self.graph.add_edge(126, 204)
        self.graph.add_edge(279, 124)
        self.graph.add_edge(75, 472)
        self.graph.add_edge(231, 72)
        self.graph.add_edge(174, 348)
        self.graph.add_edge(15, 472)
        self.graph.add_edge(90, 400)
        self.graph.add_edge(321, 208)
        self.graph.add_edge(21, 20)
        self.graph.add_edge(177, 440)
        self.graph.add_edge(465, 68)
        self.graph.add_edge(246, 452)
        self.graph.add_edge(381, 236)
        self.graph.add_edge(30, 196)
        self.graph.add_edge(120, 340)
        self.graph.add_edge(6, 152)
        self.graph.add_edge(156, 300)
        self.graph.add_edge(447, 104)
        self.graph.add_edge(327, 504)
        self.graph.add_edge(198, 328)
        self.graph.add_edge(471, 32)
        self.graph.add_edge(153, 388)
        self.graph.add_edge(219, 512)
        self.graph.add_edge(294, 260)
        self.graph.add_edge(204, 192)
        self.graph.add_edge(393, 332)
        self.graph.add_edge(510, 400)
        self.graph.add_edge(369, 444)
        self.graph.add_edge(186, 1)
        self.graph.add_edge(75, 80)
        self.graph.add_edge(492, 128)
        self.graph.add_edge(405, 404)
        self.graph.add_edge(282, 84)
        self.graph.add_edge(237, 148)
        self.graph.add_edge(255, 240)
        self.graph.add_edge(378, 288)
        self.graph.add_edge(90, 440)
        self.graph.add_edge(60, 192)
        self.graph.add_edge(321, 344)
        self.graph.add_edge(246, 48)
        self.graph.add_edge(456, 228)
        self.graph.add_edge(507, 272)
        self.graph.add_edge(294, 88)
        self.graph.add_edge(420, 444)
        self.graph.add_edge(393, 304)
        self.graph.add_edge(465, 452)
        self.graph.add_edge(51, 168)
        self.graph.add_edge(456, 96)
        self.graph.add_edge(441, 120)
        self.graph.add_edge(126, 452)
        self.graph.add_edge(246, 132)
        self.graph.add_edge(459, 172)
        self.graph.add_edge(3, 448)
        self.graph.add_edge(330, 84)
        self.graph.add_edge(33, 104)
        self.graph.add_edge(237, 208)
        self.graph.add_edge(348, 472)
        self.graph.add_edge(240, 264)
        self.graph.add_edge(246, 204)
        self.graph.add_edge(177, 284)
        self.graph.add_edge(447, 60)
        self.graph.add_edge(291, 416)
        self.graph.add_edge(231, 384)
        self.graph.add_edge(306, 128)
        self.graph.add_edge(72, 16)
        self.graph.add_edge(345, 440)
        self.graph.add_edge(21, 64)
        self.graph.add_edge(90, 204)
        self.graph.add_edge(192, 424)
        self.graph.add_edge(201, 396)
        self.graph.add_edge(351, 472)
        self.graph.add_edge(156, 488)
        self.graph.add_edge(117, 52)
        self.graph.add_edge(411, 448)
        self.graph.add_edge(426, 212)
        self.graph.add_edge(75, 196)
        self.graph.add_edge(444, 445)
        self.graph.add_edge(189, 500)
        self.graph.add_edge(456, 136)
        self.graph.add_edge(39, 512)
        self.graph.add_edge(156, 484)
        self.graph.add_edge(261, 328)
        self.graph.add_edge(456, 116)
        self.graph.add_edge(453, 364)
        self.graph.add_edge(39, 160)
        self.graph.add_edge(213, 436)
        self.graph.add_edge(330, 512)
        self.graph.add_edge(189, 124)
        self.graph.add_edge(42, 232)
        self.graph.add_edge(108, 332)
        self.graph.add_edge(486, 428)
        self.graph.add_edge(174, 36)
        self.graph.add_edge(84, 256)
        self.graph.add_edge(267, 340)
        self.graph.add_edge(327, 268)
        self.graph.add_edge(459, 100)
        self.graph.add_edge(105, 500)
        self.graph.add_edge(348, 200)
        self.graph.add_edge(174, 188)
        self.graph.add_edge(330, 508)
        self.graph.add_edge(93, 168)
        return super().setUp()

    def test_case_16(self):
        self.graph.get_all_paths()
        self.graph.get_costs()
        self.assertEqual(self.graph.get_costs(),[12, -1, 18, 24, -1, 18, -1, 12, 18, -1, -1, 24, -1, -1, 24, 24, -1, 24, -1, 12, 18, -1, -1, 18, -1, -1, 18, 24, -1, 30, -1, 12, 30, -1, -1, 18, -1, -1, 6, 24, -1, 18, -1, 18, 18, -1, -1, 24, -1, -1, 18, 24, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 30, 12, -1, 18, -1, 24, 24, -1, -1, 18, -1, -1, 18, -1, 18, -1, 12, 18, -1, -1, 12, -1, -1, 30, 24, -1, 24, -1, 24, 6, -1, -1, 24, -1, -1, 24, 24, -1, 18, -1, 24, 24, -1, -1, 24, -1, -1, 24, 18, -1, 18, -1, 24, 24, -1, -1, 18, -1, -1, 24, 24, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 18, 18, -1, 24, -1, 24, 18, -1, -1, 24, -1, -1, 18, 24, -1, 24, -1, 24, 18, -1, -1, 18, -1, -1, 24, 12, -1, 30, -1, 12, -1, -1, -1, 12, -1, -1, 18, 12, -1, 24, -1, 12, 18, -1, -1, 18, -1, -1, 24, 24, -1, 18, -1, 24, 24, -1, -1, 18, -1, -1, 24, 24, -1, 18, -1, 24, 24, -1, -1, 18, -1, -1, 18, 24, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 6, 18, -1, 18, -1, 24, 18, -1, -1, 24, -1, -1, 24, 12, -1, 18, -1, 12, 18, -1, -1, 18, -1, -1, 24, 24, -1, 24, -1, 24, 18, -1, -1, 18, -1, -1, 24, 18, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 18, 24, -1, 30, -1, 24, 18, -1, -1, 12, -1, -1, 18, 24, -1, 18, -1, 24, 30, -1, -1, 12, -1, -1, 24, 24, -1, 18, -1, 18, 18, -1, -1, 12, -1, -1, 24, 24, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 18, 12, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 18, 24, -1, 18, -1, 24, 24, -1, -1, 18, -1, -1, 18, 24, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 18, 24, -1, 18, -1, 12, 24, -1, -1, 18, -1, -1, 24, 24, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 18, 24, -1, 18, -1, 24, 18, -1, -1, 18, -1, -1, 18, 12, -1, 18, -1, 24, 18, -1, -1, 24, -1, -1, 18, 18, -1, 18, -1, 12, 18, -1, -1, 18, -1, -1, 24, 24, -1, 30, -1, 24, 24, -1, -1, 18, -1, -1, 24, 12, -1, 30, -1, 24, 18, -1, -1, 24, -1, -1, -1, 12, -1, 6, -1, 24, 18, -1, -1, 18, 24, -1, 18, 24, -1, 24, -1, 24, 18, -1, -1, 18, -1, -1, 18, 12, -1, 24, -1, 24, 30, -1, -1, 24, -1, -1, 18, 24, -1, 18, -1, 24, 24, -1, -1, 24, -1, -1, 18, 18, -1, 18, -1, 18, 30, -1, -1, 24, -1, -1, 24, 12, -1, 30, -1, 24, 18, -1, -1, 18, -1, -1, 24, 24, -1, 18, -1, 12, 24, -1, -1])

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()
class TestBFS_Case_19(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 1
        self.graph = Graph(self.START)
        self.graph.add_edge(28, 254)
        self.graph.add_edge(7, 3)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(14, 5)
        self.graph.add_edge(16, 18)
        self.graph.add_edge(6, 27)
        self.graph.add_edge(2, 28)
        self.graph.add_edge(28, 1)
        self.graph.add_edge(13, 2)
        self.graph.add_edge(1, 16)
        self.graph.add_edge(18, 19)
        self.graph.add_edge(7, 25)
        self.graph.add_edge(14, 21)
        self.graph.add_edge(7, 25)
        self.graph.add_edge(25, 18)
        self.graph.add_edge(27, 28)
        self.graph.add_edge(14, 28)
        self.graph.add_edge(7, 3)
        self.graph.add_edge(23, 5)
        self.graph.add_edge(19, 23)
        self.graph.add_edge(20, 23)
        self.graph.add_edge(20, 28)
        self.graph.add_edge(9, 24)
        self.graph.add_edge(7, 25)
        self.graph.add_edge(15, 27)
        self.graph.add_edge(25, 24)
        self.graph.add_edge(2, 14)
        self.graph.add_edge(13, 23)
        self.graph.add_edge(20, 4)
        self.graph.add_edge(6, 1)
        self.graph.add_edge(7, 22)
        self.graph.add_edge(15, 21)
        self.graph.add_edge(2, 16)
        self.graph.add_edge(22, 16)
        self.graph.add_edge(25, 6)
        self.graph.add_edge(13, 4)
        self.graph.add_edge(14, 2)
        self.graph.add_edge(15, 1)
        self.graph.add_edge(7, 11)
        self.graph.add_edge(23, 3)
        self.graph.add_edge(4, 1)
        self.graph.add_edge(28, 23)
        self.graph.add_edge(6, 1)
        self.graph.add_edge(5, 19)
        self.graph.add_edge(28, 27)
        self.graph.add_edge(19, 14)
        self.graph.add_edge(5, 1)
        self.graph.add_edge(23, 10)
        self.graph.add_edge(28, 1)
        self.graph.add_edge(7, 22)
        self.graph.add_edge(3, 27)
        self.graph.add_edge(12, 2)
        self.graph.add_edge(27, 23)
        self.graph.add_edge(22, 23)
        self.graph.add_edge(18, 24)
        self.graph.add_edge(3, 21)
        self.graph.add_edge(17, 22)
        self.graph.add_edge(8, 27)
        self.graph.add_edge(27, 14)
        self.graph.add_edge(21, 19)
        self.graph.add_edge(10, 17)
        self.graph.add_edge(14, 9)
        self.graph.add_edge(10, 15)
        self.graph.add_edge(1, 13)
        self.graph.add_edge(3, 5)
        self.graph.add_edge(27, 11)
        self.graph.add_edge(28, 5)
        self.graph.add_edge(8, 15)
        self.graph.add_edge(1, 9)
        self.graph.add_edge(11, 17)
        self.graph.add_edge(11, 1)
        self.graph.add_edge(14, 20)
        self.graph.add_edge(4, 5)
        self.graph.add_edge(12, 24)
        self.graph.add_edge(13, 15)
        self.graph.add_edge(3, 22)
        self.graph.add_edge(21, 1)
        self.graph.add_edge(25, 15)
        self.graph.add_edge(22, 26)
        self.graph.add_edge(1, 14)
        self.graph.add_edge(23, 3)
        self.graph.add_edge(15, 12)
        self.graph.add_edge(19, 13)
        self.graph.add_edge(6, 2)
        self.graph.add_edge(10, 20)
        self.graph.add_edge(24, 22)
        self.graph.add_edge(26, 9)
        self.graph.add_edge(26, 28)
        self.graph.add_edge(13, 26)
        self.graph.add_edge(28, 17)
        self.graph.add_edge(13, 17)
        self.graph.add_edge(12, 23)
        self.graph.add_edge(2, 12)
        self.graph.add_edge(18, 24)
        self.graph.add_edge(12, 28)
        self.graph.add_edge(9, 7)
        self.graph.add_edge(6, 16)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(27, 1)
        self.graph.add_edge(5, 1)
        self.graph.add_edge(23, 11)
        self.graph.add_edge(27, 23)
        self.graph.add_edge(28, 7)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(10, 8)
        self.graph.add_edge(1, 20)
        self.graph.add_edge(2, 19)
        self.graph.add_edge(10, 5)
        self.graph.add_edge(24, 17)
        self.graph.add_edge(25, 12)
        self.graph.add_edge(21, 28)
        self.graph.add_edge(8, 23)
        self.graph.add_edge(15, 28)
        self.graph.add_edge(5, 19)
        self.graph.add_edge(5, 16)
        self.graph.add_edge(17, 11)
        self.graph.add_edge(5, 18)
        self.graph.add_edge(20, 21)
        self.graph.add_edge(8, 1)
        self.graph.add_edge(3, 9)
        self.graph.add_edge(1, 26)
        self.graph.add_edge(17, 20)
        self.graph.add_edge(20, 4)
        self.graph.add_edge(5, 17)
        self.graph.add_edge(15, 17)
        self.graph.add_edge(28, 5)
        self.graph.add_edge(20, 25)
        self.graph.add_edge(1, 18)
        self.graph.add_edge(28, 1)
        self.graph.add_edge(17, 7)
        self.graph.add_edge(2, 20)
        self.graph.add_edge(17, 25)
        self.graph.add_edge(8, 16)
        self.graph.add_edge(9, 16)
        self.graph.add_edge(27, 4)
        self.graph.add_edge(8, 14)
        self.graph.add_edge(6, 14)
        self.graph.add_edge(8, 28)
        self.graph.add_edge(27, 28)
        self.graph.add_edge(26, 11)
        self.graph.add_edge(17, 27)
        self.graph.add_edge(17, 26)
        self.graph.add_edge(12, 25)
        self.graph.add_edge(22, 6)
        self.graph.add_edge(26, 18)
        self.graph.add_edge(15, 19)
        self.graph.add_edge(16, 8)
        self.graph.add_edge(19, 3)
        self.graph.add_edge(28, 1)
        self.graph.add_edge(26, 9)
        self.graph.add_edge(21, 13)
        self.graph.add_edge(2, 21)
        self.graph.add_edge(2, 1)
        self.graph.add_edge(16, 13)
        self.graph.add_edge(3, 9)
        self.graph.add_edge(1, 5)
        self.graph.add_edge(14, 16)
        self.graph.add_edge(12, 13)
        self.graph.add_edge(18, 23)
        self.graph.add_edge(18, 26)
        self.graph.add_edge(12, 8)
        self.graph.add_edge(5, 1)
        self.graph.add_edge(27, 25)
        self.graph.add_edge(3, 14)
        self.graph.add_edge(24, 9)
        self.graph.add_edge(8, 21)
        self.graph.add_edge(2, 9)
        self.graph.add_edge(8, 26)
        self.graph.add_edge(27, 28)
        self.graph.add_edge(2, 12)
        self.graph.add_edge(2, 3)
        self.graph.add_edge(24, 5)
        self.graph.add_edge(6, 11)
        self.graph.add_edge(10, 5)
        self.graph.add_edge(14, 15)
        self.graph.add_edge(12, 18)
        self.graph.add_edge(25, 1)
        self.graph.add_edge(10, 7)
        self.graph.add_edge(13, 28)
        self.graph.add_edge(28, 15)
        self.graph.add_edge(28, 21)
        self.graph.add_edge(5, 12)
        self.graph.add_edge(11, 15)
        self.graph.add_edge(8, 20)
        self.graph.add_edge(23, 4)
        self.graph.add_edge(17, 22)
        self.graph.add_edge(13, 6)
        self.graph.add_edge(1, 27)
        self.graph.add_edge(20, 15)
        self.graph.add_edge(9, 12)
        self.graph.add_edge(26, 7)
        self.graph.add_edge(2, 18)
        self.graph.add_edge(6, 25)
        self.graph.add_edge(7, 4)
        self.graph.add_edge(6, 22)
        self.graph.add_edge(25, 23)
        self.graph.add_edge(8, 13)
        self.graph.add_edge(28, 22)
        self.graph.add_edge(18, 24)
        self.graph.add_edge(12, 5)
        self.graph.add_edge(8, 4)
        self.graph.add_edge(27, 26)
        self.graph.add_edge(19, 25)
        self.graph.add_edge(22, 23)
        self.graph.add_edge(9, 15)
        self.graph.add_edge(4, 6)
        self.graph.add_edge(28, 22)
        self.graph.add_edge(23, 6)
        self.graph.add_edge(21, 13)
        self.graph.add_edge(8, 23)
        self.graph.add_edge(2, 19)
        self.graph.add_edge(11, 28)
        self.graph.add_edge(21, 26)
        self.graph.add_edge(1, 15)
        self.graph.add_edge(4, 13)
        self.graph.add_edge(22, 13)
        self.graph.add_edge(18, 21)
        self.graph.add_edge(1, 10)
        self.graph.add_edge(5, 6)
        self.graph.add_edge(22, 14)
        self.graph.add_edge(7, 20)
        self.graph.add_edge(18, 14)
        self.graph.add_edge(26, 1)
        self.graph.add_edge(2, 16)
        self.graph.add_edge(9, 19)
        self.graph.add_edge(13, 4)
        self.graph.add_edge(22, 1)
        self.graph.add_edge(11, 15)
        self.graph.add_edge(15, 6)
        self.graph.add_edge(6, 15)
        self.graph.add_edge(13, 16)
        self.graph.add_edge(24, 6)
        self.graph.add_edge(11, 12)
        self.graph.add_edge(14, 27)
        self.graph.add_edge(12, 23)
        self.graph.add_edge(20, 8)
        self.graph.add_edge(10, 13)
        self.graph.add_edge(26, 28)
        self.graph.add_edge(26, 17)
        self.graph.add_edge(26, 4)
        self.graph.add_edge(14, 17)
        self.graph.add_edge(25, 20)
        self.graph.add_edge(11, 20)
        self.graph.add_edge(20, 8)
        self.graph.add_edge(5, 6)
        self.graph.add_edge(5, 19)
        self.graph.add_edge(24, 1)
        self.graph.add_edge(18, 6)
        self.graph.add_edge(12, 11)
        self.graph.add_edge(20, 10)
        self.graph.add_edge(3, 5)
        self.graph.add_edge(27, 14)
        self.graph.add_edge(5, 1)
        self.graph.add_edge(27, 21)
        self.graph.add_edge(27, 25)
        return super().setUp()

    def test_case_19(self):
        self.graph.get_all_paths()
        self.graph.get_costs()
        self.assertEqual(self.graph.get_costs(),[6, 12, 6, 6, 6, 12, 6, 6, 6, 6, 12, 6, 6, 6, 6, 12, 6, 12, 6, 6, 6, 12, 6, 6, 6, 6, 6])

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()
Beispiel #9
0
class TestBreadthFirstSearch(unittest.TestCase):
    START = None
    graph = None

    def setUp(self):
        self.START = 1
        self.graph = Graph(self.START)
        self.graph.add_edge(4, 2)
        self.graph.add_edge(1, 2)
        self.graph.add_edge(1, 3)
        return super().setUp()

    def test_node_quantity_input(self):
        self.assertEqual(self.graph.get_qtd_nodes(), 4)

    def test_node_start_input(self):
        self.assertEqual(self.graph.get_start(), self.START)

    def test_add_edges(self):
        self.assertEqual(list(self.graph.get_nodes().keys()), [4, 1])

    def test_get_origin_nodes(self):
        self.assertEqual(set(self.graph.get_origin_nodes()), set([1,4]))

    def test_get_all_destination_nodes(self):
        self.assertEqual(self.graph.get_all_destination_nodes(), set([2,3]))

    def test_get_destination_nodes(self):
        self.assertEqual(self.graph.get_destination_nodes(1), [2,3])
        
    def test_node_not_origin(self):
        self.assertEqual(self.graph._node_not_origin(5), True)

    def test_node_not_destination(self):
        self.assertEqual(self.graph._node_not_destination(4), True)

    def test_last_path_node(self):
        self.assertEqual(self.graph.check_if_last_path_node(2), True)

    # def test_node_path(self):
    #     self.assertEqual(self.graph.get_node_paths(1),[[2],[3,5]])

    # def test_all_paths(self):
    #     self.assertEqual(self.graph.get_all_paths(),[[],[[2],[3,5]],[[5]],[[2]],[]])

    # def test_node_cost(self):
    #     self.assertEqual(self.graph.get_node_cost(5), 12)

    def test_all_cost(self):
        self.graph.get_all_paths()
        self.assertEqual(self.graph.get_costs(),  [6, 6, -1])

    # def test_add_node(self):
    #     """
    #     Test the graph nodes input
    #     1
    #     3 1
    #     2 3
    #     2
    #     """

    # def test_path_cost(self):
    #     """
    #     6 6 -1
    #     -1 6
    #     """

    def tearDown(self):
        del self.START
        del self.graph
        return super().tearDown()