Commit 975659b8 authored by Beuster's avatar Beuster
Browse files

Test: Work on file TestExample

Update file TestExample

Extend file by InnerRing
parent 5c53f444
package de.hft.stuttgart.citydoctor2.healing.bht; package de.hft.stuttgart.citydoctor2.healing.bht;
import java.io.IOException; import java.io.IOException;
//import java.io.InputStream; //new
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.Scanner; //new
import org.junit.Test;
import de.hft.stuttgart.citydoctor2.check.AbstractVisitor; import de.hft.stuttgart.citydoctor2.check.AbstractVisitor;
import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration;
import de.hft.stuttgart.citydoctor2.datastructure.Building; import de.hft.stuttgart.citydoctor2.datastructure.Building;
import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel;
import de.hft.stuttgart.citydoctor2.datastructure.ConcretePolygon; import de.hft.stuttgart.citydoctor2.datastructure.ConcretePolygon;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.citydoctor2.datastructure.Polygon;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.exceptions.CityDoctorWriteException;
import de.hft.stuttgart.citydoctor2.healing.TestUtil; import de.hft.stuttgart.citydoctor2.healing.TestUtil;
import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException;
import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException;
public class TestExample { public class TestExample {
// InputStream inStream = getClass().getClassLoader().getResourceAsStream("SimpleSolid_SrefBS.gml"); //new
// //if you want to load a src/test/resources file out of a different package
public static void main(String[] args) throws CityGmlParseException, IOException, InvalidGmlFileException { public static void main(String[] args) throws CityGmlParseException, IOException, InvalidGmlFileException {
String path = args[0]; System.out.println("Start TestExample... \n"); //new
// String path = args[0];
// String path = "src/test/resources/SimpleSolid_SrefBS.gml"; //new
String path = "src/test/resources/TestBuilding1.gml"; //new
ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig();
CityDoctorModel model = TestUtil.loadCityModel(path, config); CityDoctorModel model = TestUtil.loadCityModel(path, config);
System.out.println("\nModel has been loaded..."); //new
// //inside class Geometry
// @Override
// public void accept(Check c) {
// super.accept(c);
// if (c.canExecute(this)) {
// c.check(this);
// }
// for (Polygon p : polygons) {
// p.accept(c);
// }
// }
// visitor // visitor
// filter duplicate polygons out // filter duplicate polygons out
Set<ConcretePolygon> allBuildingPolygons = new HashSet<>(); Set<ConcretePolygon> allBuildingPolygons = new HashSet<>();
...@@ -34,6 +63,8 @@ public class TestExample { ...@@ -34,6 +63,8 @@ public class TestExample {
} }
}); });
} }
System.out.println("\nConcretePolygon HashSet elements:" + allBuildingPolygons); //new
// for loop // for loop
List<Polygon> allBuildingPolygons2 = new ArrayList<>(); List<Polygon> allBuildingPolygons2 = new ArrayList<>();
...@@ -44,8 +75,65 @@ public class TestExample { ...@@ -44,8 +75,65 @@ public class TestExample {
} }
} }
} }
System.out.println("\nPolygon List:" + allBuildingPolygons2); //new
// //inside class ConcretePolygon
// @Override
// public void accept(Check c) {
// super.accept(c);
// if (c.canExecute(this)) {
// c.check(this);
// }
// if (exterior != null) {
// exterior.accept(c);
// }
// if (innerRings != null) {
// for (LinearRing lr : innerRings) {
// lr.accept(c);
// }
// }
// }
// visitor
// filter duplicate polygons out
Set<ConcretePolygon> allBuildingInnerRings = new HashSet<>();
for (Building b : model.getBuildings()) {
b.accept(new AbstractVisitor() {
public void check(Polygon poly) {
allBuildingInnerRings.add(poly.getOriginal());
}
});
}
System.out.println("\nConcretePolygon HashSet elements:" + allBuildingInnerRings); //new
// new: LinearRing from ConcretePolygon
// for loop
List<LinearRing> allBuildingInnerRings2 = new ArrayList<>();
for (Building b : model.getBuildings()) {
for (Geometry geom : b.getGeometries()) {
for (Polygon p : geom.getPolygons()) {
for (LinearRing lr : p.getInnerRings()) {
allBuildingInnerRings2.add(lr);
}
} // for (LinearRing extRing : p.getExteriorRing()) {
//allBuildingInnerRings.add(extRing);
// for (LinearRing lr : extRing.getLinearRings()) {
// allBuildingInnerRings.add(lr);
// }
// }
}
}
}
System.out.println("\nInnerRing List:" + allBuildingInnerRings2); //new
}
// //@Test
// public void testMain() throws CityGmlParseException, IOException, InvalidGmlFileException {
// TestExample.main(new String[]{});
// }
} }
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment