Package org.opentripplanner.routing.graph

Source Code of org.opentripplanner.routing.graph.EdgeTest

/* This program is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>. */

package org.opentripplanner.routing.graph;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import org.junit.Test;
import org.opentripplanner.routing.edgetype.StreetEdge;
import org.opentripplanner.routing.edgetype.StreetTraversalPermission;
import org.opentripplanner.routing.vertextype.IntersectionVertex;
import org.opentripplanner.routing.vertextype.StreetVertex;

public class EdgeTest {
    @Test
    public void testConstruct() {
        Graph graph = new Graph();
        Vertex head = new SimpleConcreteVertex(
                graph, "head", 47.669457, -122.387577);
        Vertex tail = new SimpleConcreteVertex(
                graph, "tail", 47.669462, -122.384739);
        Edge e = new SimpleConcreteEdge(head, tail);

        assertEquals(head, e.getFromVertex());
        assertEquals(tail, e.getToVertex());
        assertTrue(e.getId() >= 0);
    }

    @Test
    public void testEdgeRemoval() {

        Graph graph = new Graph();
        StreetVertex va = new IntersectionVertex(graph, "A", 10.0, 10.0);
        StreetVertex vb = new IntersectionVertex(graph, "B", 10.1, 10.1);
        StreetVertex vc = new IntersectionVertex(graph, "C", 10.2, 10.2);
        StreetVertex vd = new IntersectionVertex(graph, "D", 10.3, 10.3);
        Edge eab = new StreetEdge(va, vb, null, "AB", 10, StreetTraversalPermission.ALL, false);
        Edge ebc = new StreetEdge(vb, vc, null, "BC", 10, StreetTraversalPermission.ALL, false);
        Edge ecd = new StreetEdge(vc, vd, null, "CD", 10, StreetTraversalPermission.ALL, false);

        // remove an edge that is not connected to this vertex
        va.removeOutgoing(ecd);
        assertEquals(va.getDegreeOut(), 1);

        // remove an edge from an edgelist that is empty
        vd.removeOutgoing(eab);
        assertEquals(vd.getDegreeOut(), 0);

        // remove an edge that is actually connected
        assertEquals(va.getDegreeOut(), 1);
        va.removeOutgoing(eab);
        assertEquals(va.getDegreeOut(), 0);

        // remove an edge that is actually connected
        assertEquals(vb.getDegreeIn(), 1);
        assertEquals(vb.getDegreeOut(), 1);
        vb.removeIncoming(eab);
        assertEquals(vb.getDegreeIn(), 0);
        assertEquals(vb.getDegreeOut(), 1);
        vb.removeOutgoing(ebc);
        assertEquals(vb.getDegreeIn(), 0);
        assertEquals(vb.getDegreeOut(), 0);
       
    }
}
TOP

Related Classes of org.opentripplanner.routing.graph.EdgeTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.