/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2008, Open Source Geospatial Foundation (OSGeo) * * This library 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; * version 2.1 of the License. * * This library 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 * Lesser General Public License for more details. */ package org.geotools.graph.util; import junit.framework.TestCase; import org.geotools.graph.GraphTestUtil; import org.geotools.graph.build.GraphBuilder; import org.geotools.graph.build.basic.BasicGraphBuilder; import org.geotools.graph.util.graph.CycleDetector; public class CycleDetectorTest extends TestCase { private GraphBuilder m_builder; public CycleDetectorTest(String name) { super(name); } protected void setUp() throws Exception { super.setUp(); m_builder = createBuilder(); } /** * Create a graph without a cycle. <BR> * <BR> * Expected: 1. containsCycle() returns false */ public void test_0() { GraphTestUtil.buildNoBifurcations(builder(), 100); CycleDetector detector = new CycleDetector(builder().getGraph()); assertTrue(!detector.containsCycle()); } /** * Create a graph that contains a cycle. <BR> * <BR> * Expected: 1. containsCycle returns true */ public void test_1() { GraphTestUtil.buildCircular(builder(), 100); CycleDetector detector = new CycleDetector(builder().getGraph()); assertTrue(detector.containsCycle()); } protected GraphBuilder createBuilder() { return(new BasicGraphBuilder()); } protected GraphBuilder builder() { return(m_builder); } }