public void test_1() {
final Coordinate base = new Coordinate(0d,0d);
final int n = 100;
for (int i = 1; i <= n; i++) {
Edge e = (Edge)generator().add(
new LineSegment(
new Coordinate(base.x + (i-1), base.y + (i-1)),
new Coordinate(base.x + i, base.y + i)
)
);
}
//complete the circle
generator().add(
new LineSegment(new Coordinate(base.x + n, base.y + n), base)
);
generator().generate();
Graph built = generator().getGraph();
assertTrue(built.getEdges().size() == n+1);
assertTrue(built.getNodes().size() == n+1);
//all nodes should be of degree 2
assertTrue(
built.getNodesOfDegree(2).size() == built.getNodes().size()
);
//ensure coordinates
GraphVisitor visitor = new GraphVisitor() {
public int visit(Graphable component) {
Edge e = (Edge)component;
XYNode a = (XYNode)e.getNodeA();
XYNode b = (XYNode)e.getNodeB();
if (b.getCoordinate().equals(base)) {
assertTrue(a.getCoordinate().equals(new Coordinate(n,n)));
}
else {