示例#1
0
    def testMoreEdges(self):
        edges = [
            {'from': 'abu dhabi', 'to': 'rome'},
            {'from': 'london', 'to': 'new york'},
            {'from': 'doha', 'to': 'abu dhabi'},
            {'from': 'Dubai', 'to': 'doha'},
            {'from': 'Rome', 'to': 'paris'},
            {'from': 'new york', 'to': 'dallas'},
            {'from': 'paris', 'to': 'London'}
        ]

        orderedEdges = pathGraph.sortEdges(edges)

        self.assertEqual(7, len(orderedEdges))
        self.assertEqual('Dubai', orderedEdges[0]['from'])
        self.assertEqual('doha', orderedEdges[0]['to'])
        self.assertEqual('doha', orderedEdges[1]['from'])
        self.assertEqual('abu dhabi', orderedEdges[1]['to'])
        self.assertEqual('abu dhabi', orderedEdges[2]['from'])
        self.assertEqual('rome', orderedEdges[2]['to'])
        self.assertEqual('Rome', orderedEdges[3]['from'])
        self.assertEqual('paris', orderedEdges[3]['to'])
        self.assertEqual('paris', orderedEdges[4]['from'])
        self.assertEqual('London', orderedEdges[4]['to'])
        self.assertEqual('london', orderedEdges[5]['from'])
        self.assertEqual('new york', orderedEdges[5]['to'])
        self.assertEqual('new york', orderedEdges[6]['from'])
        self.assertEqual('dallas', orderedEdges[6]['to'])
示例#2
0
    def testExceptionMoreThanOneStartFromSamePoint(self):
        edges = [
            {'from': 'dubai', 'to': 'abu dhabi'},
            {'from': 'dubai', 'to': 'doha'}
        ]

        try:
            orderedEdges = pathGraph.sortEdges(edges)
        except Exception as e:
            self.assertEqual('Found duplicated edge that starts from: dubai', e.message)
示例#3
0
    def testSingleEdge(self):
        edges = [
            {'from': 'Dubai', 'to': 'Abu Dhabi'}
        ]

        orderedEdges = pathGraph.sortEdges(edges)

        self.assertEqual(1, len(orderedEdges))
        self.assertEqual('Dubai', orderedEdges[0]['from'])
        self.assertEqual('Abu Dhabi', orderedEdges[0]['to'])
示例#4
0
    def testExceptionCyclicGraph(self):
        edges = [
            {'from': 'dubai', 'to': 'abu dhabi'},
            {'from': 'doha', 'to': 'dubai'},
            {'from': 'abu dhabi', 'to': 'doha'}
        ]

        try:
            orderedEdges = pathGraph.sortEdges(edges)
        except Exception as e:
            self.assertEqual('The given edges form a cycle, no starting point can be automatically selected', e.message)
示例#5
0
    def testExceptionMoreThanOneStartingPoint(self):
        edges = [
            {'from': 'dubai', 'to': 'abu dhabi'},
            {'from': 'doha', 'to': 'dubai'},
            {'from': 'rome', 'to': 'dubai'}
        ]

        try:
            orderedEdges = pathGraph.sortEdges(edges)
        except Exception as e:
            self.assertEqual('There are more than one possible starting points', e.message)
示例#6
0
    def testTwoEdges(self):
        edges = [
            {'from': 'abu dhabi', 'to': 'doha'},
            {'from': 'Dubai', 'to': 'Abu Dhabi'}
        ]

        orderedEdges = pathGraph.sortEdges(edges)

        self.assertEqual(2, len(orderedEdges))
        self.assertEqual('Dubai', orderedEdges[0]['from'])
        self.assertEqual('Abu Dhabi', orderedEdges[0]['to'])
        self.assertEqual('abu dhabi', orderedEdges[1]['from'])
        self.assertEqual('doha', orderedEdges[1]['to'])