Exemple #1
0
    def test_angle(self):
        
        v5 = constructIntersection(withMovements=True)

        e15 = v5.getInEdge("1")
        e51 = v5.getOutEdge("1")
        e52 = v5.getOutEdge("2")
        e25 = v5.getInEdge("2")
        e35 = v5.getInEdge("3")
        e54 = v5.getOutEdge("4")
        e45 = v5.getInEdge("4")
        
        assert e15.getAngleClockwise(e52) == 90
        assert e51.getAngleClockwise(e52) == 270

        assert e45.getAngleClockwise(e52) == 270
        assert e54.getAngleClockwise(e52) == 90

        assert e25.getAngleClockwise(e54) == 90
        assert e25.getAngleClockwise(e45) == 270

        assert e45.getAngleClockwise(e35) == 270
        assert e54.getAngleClockwise(e35) == 90
        #assert e54.getAngleClockwise(e52) == 90
        
        assert e15.getAngleClockwise(e15) == 0
        assert e15.getAngleClockwise(e51) == 180
    def test_iterInEdges(self):

        v5 = constructIntersection()
        result = [edge.iid_ for edge in v5.iterInEdges()]

        answer = ["4 5", "2 5", "1 5", "3 5"]
        assert result == answer
    def test_iterOutEdges(self):

        v5 = constructIntersection()

        result = [edge.iid_ for edge in v5.iterOutEdges()]
        answer = ["5 1", "5 2", "5 4", "5 3"]
        assert result == answer
Exemple #4
0
    def NOtest_addOutMovementRaises(self):

        v5 = constructIntersection()


        e53 = v5.getOutEdge("3")
        e51 = v5.getOutEdge("1")
        e52 = v5.getOutEdge("2")
        e54 = v5.getOutEdge("4")
        
        e35 = v5.getInEdge("3")
        e45 = v5.getInEdge("4")
        e25 = v5.getInEdge("2")
        e15 = v5.getInEdge("1")


        #mov1525 = Movement(e15, e25, 0, 0, 1)
        #nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1525))
        mov1552 = Movement(e15, e52, 1)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))
        #e15.addOutMovement(mov1552)
#        nose.tools.assert_raises(GraphError, e15.addOutMovement, e25, 0, 0, 1)
#        nose.tools.assert_raises(GraphError, e15.addOutMovement, e52, 3, 0, 1)
#

        mov1552 = Movement(e15, e52, 2)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))
        mov1552 = Movement(e15, e52, 3)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))
        mov1552 = Movement(e15, e52, 4)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))
        
#        nose.tools.assert_raises(GraphError, e15.addOutMovement, e52, 2, 0, 2)
#        nose.tools.assert_raises(GraphError, e15.addOutMovement, e52, 1, 0, 3)
#        nose.tools.assert_raises(GraphError, e15.addOutMovement, e52, 0, 0, 4)
#
        mov1552 = Movement(e15, e52, 3)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))

        mov1552 = Movement(e15, e52, 2)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))

        mov1552 = Movement(e15, e52, 1)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))

#        nose.tools.assert_raises(GraphError, e15.addOutMovement, e52, 0, 0, 3)
#        nose.tools.assert_raises(GraphError, e15.addOutMovement, e52, 0, 1, 2)
#        nose.tools.assert_raises(GraphError, e15.addOutMovement, e52, 0, 2, 1)
#
        mov1552 = Movement(e15, e52, 0)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))
        mov1552 = Movement(e15, e52, -1)
        nose.tools.assert_raises(GraphError, e15.addOutMovement(mov1552))
Exemple #5
0
    def test_hasInMovement(self):

        v5 = constructIntersection(withMovements=True)

        e15 = v5.getInEdge("1")
        e53 = v5.getOutEdge("3")
        e51 = v5.getOutEdge("1")
        e52 = v5.getOutEdge("2")
        e54 = v5.getOutEdge("4")
                
        e52.hasInMovement("1")
        e53.hasInMovement("1")
        e54.hasInMovement("1")
    def test_getInEdgeCounterClockwise(self):

        v5 = constructIntersection()
        e35 = v5.getInEdge("3")

        e45 = v5.getInEdgeCounterClockwise(e35)
        assert e45 == v5.getInEdge("4")
        e25 = v5.getInEdgeCounterClockwise(e45)
        assert e25 == v5.getInEdge("2")
        e15 = v5.getInEdgeCounterClockwise(e25)
        assert e15 == v5.getInEdge("1")
        e35 = v5.getInEdgeCounterClockwise(e15)
        assert e35 == v5.getInEdge("3")
    def test_getOutEdgeClockwise(self):

        v5 = constructIntersection()
        e54 = v5.getOutEdge("4")

        e53 = v5.getOutEdgeClockwise(e54)
        assert e53 == v5.getOutEdge("3")
        e51 = v5.getOutEdgeClockwise(e53)
        assert e51 == v5.getOutEdge("1")
        e52 = v5.getOutEdgeClockwise(e51)
        assert e52 == v5.getOutEdge("2")
        e54 = v5.getOutEdgeClockwise(e52)
        assert e54 == v5.getOutEdge("4")
Exemple #8
0
    def test_iterOutMovements(self):
        
        
        v5 = constructIntersection(withMovements=True)

        e15 = v5.getInEdge("1")
        e53 = v5.getOutEdge("3")
        e51 = v5.getOutEdge("1")
        e52 = v5.getOutEdge("2")
        e54 = v5.getOutEdge("4")


        result = [mov.iid_ for mov in e15.iterOutMovements()] 
        
        answer = ['1 5 2', '1 5 4', '1 5 3']

        assert result == answer
Exemple #9
0
    def test_getAcuteAngle(self):

        v5 = constructIntersection(withMovements=True)

        e15 = v5.getInEdge("1")
        e52 = v5.getOutEdge("2")
        e25 = v5.getInEdge("2")
        e35 = v5.getInEdge("3")
        e54 = v5.getOutEdge("4")
        e45 = v5.getInEdge("4")
        
        assert e15.getAcuteAngle(e52) == 90
        assert e52.getAcuteAngle(e15) == 90

        assert e15.getAcuteAngle(e54) == 180
        assert e15.getAcuteAngle(e45) == 180

        net = getSimpleNet()

        v5 = net.getVertex("5")
        v8 = net.getVertex("8")

        e58 = Edge(v5, v8, 3)
        net.addEdge(e58)

        e15 = net.getEdge("1", "5")
        e51 = net.getEdge("5", "1")

        assert e15.getAcuteAngle(e58) == 135
        assert e51.getAcuteAngle(e58) == 135

        assert e58.getAcuteAngle(e15) == 135
        assert e58.getAcuteAngle(e51) == 135

        e85 = Edge(v8, v5, 2)
        net.addEdge(e85)

        assert e15.getAcuteAngle(e85) == 135
        assert e51.getAcuteAngle(e85) == 135

        assert e85.getAcuteAngle(e15) == 135
        assert e85.getAcuteAngle(e51) == 135
Exemple #10
0
    def test_addOutMovement(self):
        
        v5 = constructIntersection()


        e53 = v5.getOutEdge("3")
        e51 = v5.getOutEdge("1")
        e52 = v5.getOutEdge("2")
        e54 = v5.getOutEdge("4")
        
        e35 = v5.getInEdge("3")
        e45 = v5.getInEdge("4")
        e25 = v5.getInEdge("2")
        e15 = v5.getInEdge("1")

        
        #nose.tools.assert_raises(GraphError, e15.addOutMovement, e25, 0, 0, 1)
                       
        assert not  e15.hasOutMovement("2")

        #add a left turn
        mov152 = Movement(e15, e52, 1)
        e15.addOutMovement(mov152)
        #try to add it again
        nose.tools.assert_raises(GraphError, e15.addOutMovement, mov152)
        assert e15.hasOutMovement("2")

        #add a right turn
        assert not e15.hasOutMovement("3")
        mov153 = Movement(e15, e53, 1)
        e15.addOutMovement(mov153)
        assert e15.hasOutMovement("3")

        
        #add a through turn
        mov154 = Movement(e15, e54, 2)
        #e15.addOutMovement(e54, 1, 0, 2)
        e15.addOutMovement(mov154)
        assert e15.hasOutMovement("4")        
Exemple #11
0
    def test_deleteOutMovement(self):
        
        v5 = constructIntersection(withMovements=True)

        e15 = v5.getInEdge("1")
        e53 = v5.getOutEdge("3")
        e51 = v5.getOutEdge("1")
        e52 = v5.getOutEdge("2")
        e54 = v5.getOutEdge("4")
                 
        mov152 = e15.getOutMovement("2")
        mov154 = e15.getOutMovement("4")
        mov153 = e15.getOutMovement("3")

        assert e15.hasOutMovement("2")
        assert e52.hasInMovement("1")
        assert e15.getNumOutMovements() == 3
        assert e52.getNumInMovements() == 1
        e15.deleteOutMovement(mov152)
        assert not e15.hasOutMovement("2")
        assert not e52.hasInMovement("1")
        assert e15.getNumOutMovements() == 2
        assert e52.getNumInMovements() == 0
    def test_constructIntersection(self):

        v5 = constructIntersection()

        assert v5.getNumOutEdges() == 4
        assert v5.getNumInEdges() == 4