assertEquals(12.0, out.connectionLength(a, f), 0.0002);
}
@Test
public void testIsContractableZero() {
Point a, b, c;
Graph<E> graph = createGraph();
a = new Point(0, 0);
b = new Point(1, 0);
c = new Point(2, 0);
Graphs.addPath(graph, a, b, c);
if (WRITE_TO_FILE) {
DotUtils.saveToDot(graph, "files/test/mapfixer/contractable-zero-1", true);
}
assertEquals(MapPreprocessor.ContractType.RIGHT, MapPreprocessor.isContractable(graph, a, b));
assertEquals(MapPreprocessor.ContractType.LEFT, MapPreprocessor.isContractable(graph, b, a));
assertEquals(MapPreprocessor.ContractType.LEFT, MapPreprocessor.isContractable(graph, b, c));
assertEquals(MapPreprocessor.ContractType.RIGHT, MapPreprocessor.isContractable(graph, c, b));
Graphs.addPath(graph, c, b, a);
if (WRITE_TO_FILE) {
DotUtils.saveToDot(graph, "files/test/mapfixer/contractable-zero-2", true);
}
assertEquals(MapPreprocessor.ContractType.RIGHT, MapPreprocessor.isContractable(graph, a, b));
assertEquals(MapPreprocessor.ContractType.LEFT, MapPreprocessor.isContractable(graph, b, a));
assertEquals(MapPreprocessor.ContractType.LEFT, MapPreprocessor.isContractable(graph, b, c));
assertEquals(MapPreprocessor.ContractType.RIGHT, MapPreprocessor.isContractable(graph, c, b));
Point d = new Point(3, 0);
graph.addConnection(b, d);
if (WRITE_TO_FILE) {
DotUtils.saveToDot(graph, "files/test/mapfixer/contractable-zero-3", true);
}
assertEquals(MapPreprocessor.ContractType.NO, MapPreprocessor.isContractable(graph, a, b));