Пример #1
0
    def testInvalidManagerFile(self):
        """Check that providing a file with invalid manager ID is handled properly"""
        filename = filename = "testing/datasets/invalid_manager.txt"
        start = "Catwoman"
        end = "Gonzo the Great"

        graph = hierarchy.build_graph(filename)
        self.assertRaises(EdgesError, graph.find_path, start, end)
Пример #2
0
    def testNoPathFound(self):
        """Check that we gracefully handle when no path is present"""
        filename = "superheroes.txt"
        start = "Black Widow"
        end = "Patrick Monaghan"

        graph = hierarchy.build_graph(filename)
        path = graph.find_path(start, end)
        self.assertEquals(None, path)
Пример #3
0
    def testMultipleSpaces(self):
        """Check that multiple spaces are ignored"""
        start = "     Black       Widow"
        end = "Dangermouse    "
        expected = "Black Widow (6) -> Gonzo the Great (2) -> Dangermouse (1)"

        graph = hierarchy.build_graph(self.filename)
        path = graph.find_path(start, end)
        self.assertEquals(expected, path)
Пример #4
0
    def testTrailingLeadSpace(self):
        """Check that trailing and leading space is ignored"""
        start = "     Black Widow"
        end = "Dangermouse    "
        expected = "Black Widow (6) -> Gonzo the Great (2) -> Dangermouse (1)"

        graph = hierarchy.build_graph(self.filename)
        path = graph.find_path(start, end)
        self.assertEquals(expected, path)
Пример #5
0
    def testCaseCheck(self):
        """Check that the solution is not case sensitive"""
        start = "BatMAN"
        end = "catwoman"
        expected = "Batman (16) -> Black Widow (6) <- Catwoman (17)"

        graph = hierarchy.build_graph(self.filename)
        path = graph.find_path(start, end)
        self.assertEquals(expected, path)
Пример #6
0
    def testSolutionWorks(self):
        """Check that another example works"""
        start = "Catwoman"
        end = "Dangermouse"
        expected = "Catwoman (17) -> Black Widow (6) -> Gonzo the Great (2) -> Dangermouse (1)"

        graph = hierarchy.build_graph(self.filename)
        path = graph.find_path(start, end)
        self.assertEquals(expected, path)
Пример #7
0
    def testSolutionExampleWorks(self):
        """Check that the given example works"""
        start = "Batman"
        end = "Super Ted"
        expected = "Batman (16) -> Black Widow (6) -> Gonzo the Great (2) -> Dangermouse (1) <- Invisible Woman (3) <- Super Ted (15)"

        graph = hierarchy.build_graph(self.filename)
        path = graph.find_path(start, end)
        self.assertEquals(expected, path)
Пример #8
0
    def testMultipleNames(self):
        """Check that duplicate names but unique IDs work """
        start = "Catwoman"
        end = "Catwoman"
        expected = "Catwoman (17) -> Black Widow (6) <- Catwoman (18)"

        filename = "testing/datasets/duplicate_name.txt"
        graph = hierarchy.build_graph(filename)
        path = graph.find_path(start, end)
        self.assertEquals(expected, path)
Пример #9
0
    def testInverseSearch(self):
        """Check that searching the organisation chart in reverse works: for
		example, searching from right to left"""
        filename = "superheroes.txt"
        start = "Catwoman"
        end = "Batman"

        expected = "Catwoman (17) -> Black Widow (6) <- Batman (16)"
        graph = hierarchy.build_graph(filename)
        path = graph.find_path(start, end)
        self.assertEquals(expected, path)
Пример #10
0
    def testExtendedGraph(self):
        """Try with a bigger dataset"""
        filename = "testing/datasets/extended_dataset.txt"
        start = "Catwoman"
        end = "Superman"

        expected = """Catwoman (17) -> Black Widow (6) -> Gonzo the Great (2) -> Dangermouse (1) <- Captain America (19) <- Wolverine (21) <- Hulk (31) <- SpiderMan (25) <- Superman (35)"""

        graph = hierarchy.build_graph(filename)
        path = graph.find_path(start, end)
        self.assertEquals(expected, path)