Commit 85cf93b6 authored by Matthias Betz's avatar Matthias Betz
Browse files

reworked check engine now working on requirements

parent 35577785
Pipeline #2108 passed with stage
in 3 minutes and 6 seconds
...@@ -23,7 +23,6 @@ import java.util.List; ...@@ -23,7 +23,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.Checker; import de.hft.stuttgart.citydoctor2.check.Checker;
import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration;
import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel;
...@@ -52,7 +51,7 @@ public class TestUtil { ...@@ -52,7 +51,7 @@ public class TestUtil {
public static CityDoctorModel loadAndCheckCityModel(String path, int numberOfRoundingPlaces) public static CityDoctorModel loadAndCheckCityModel(String path, int numberOfRoundingPlaces)
throws CityGmlParseException, IOException, InvalidGmlFileException { throws CityGmlParseException, IOException, InvalidGmlFileException {
ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig();
config.setNumberOfRoundingPlaces(numberOfRoundingPlaces); config.setNumberOfRoundingPlacesInGlobalParameters(numberOfRoundingPlaces);
CityDoctorModel m = CityGmlParser.parseCityGmlFile(path, config.getParserConfiguration()); CityDoctorModel m = CityGmlParser.parseCityGmlFile(path, config.getParserConfiguration());
Checker c = new Checker(config, m); Checker c = new Checker(config, m);
c.runChecks(); c.runChecks();
...@@ -63,8 +62,8 @@ public class TestUtil { ...@@ -63,8 +62,8 @@ public class TestUtil {
public static CityDoctorModel loadAndCheckCityModel(String path, int numberOfRoundingPlaces, double minVertexDistance) public static CityDoctorModel loadAndCheckCityModel(String path, int numberOfRoundingPlaces, double minVertexDistance)
throws CityGmlParseException, IOException, InvalidGmlFileException { throws CityGmlParseException, IOException, InvalidGmlFileException {
ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig();
config.setNumberOfRoundingPlaces(numberOfRoundingPlaces); config.setNumberOfRoundingPlacesInGlobalParameters(numberOfRoundingPlaces);
config.setMinVertexDistance(minVertexDistance); config.setMinVertexDistanceInGlobalParameters(minVertexDistance);
CityDoctorModel m = CityGmlParser.parseCityGmlFile(path, config.getParserConfiguration()); CityDoctorModel m = CityGmlParser.parseCityGmlFile(path, config.getParserConfiguration());
Checker c = new Checker(config, m); Checker c = new Checker(config, m);
c.runChecks(); c.runChecks();
...@@ -72,11 +71,11 @@ public class TestUtil { ...@@ -72,11 +71,11 @@ public class TestUtil {
} }
public static CityDoctorModel loadAndCheckCityModel(String path, Map<CheckId, Map<String, String>> paramMap) public static CityDoctorModel loadAndCheckCityModel(String path, Map<String, Map<String, String>> paramMap)
throws CityGmlParseException, IOException, InvalidGmlFileException { throws CityGmlParseException, IOException, InvalidGmlFileException {
ValidationConfiguration valConfig = ValidationConfiguration.loadStandardValidationConfig(); ValidationConfiguration valConfig = ValidationConfiguration.loadStandardValidationConfig();
for (Entry<CheckId, Map<String, String>> e : paramMap.entrySet()) { for (Entry<String, Map<String, String>> e : paramMap.entrySet()) {
valConfig.getChecks().get(e.getKey()).setParameters(e.getValue()); valConfig.getRequirements().get(e.getKey()).getParameters().putAll(e.getValue());
} }
CityDoctorModel m = CityGmlParser.parseCityGmlFile(path, valConfig.getParserConfiguration()); CityDoctorModel m = CityGmlParser.parseCityGmlFile(path, valConfig.getParserConfiguration());
Checker c = new Checker(valConfig, m); Checker c = new Checker(valConfig, m);
......
numberOfRoundingPlaces: 8 globalParameters:
numberOfRoundingPlaces: 8
# in m
minVertexDistance: 0.0001
schematronFilePath: ''
useStreaming: false useStreaming: false
xmlValidation: false xmlValidation: false
checks: requirements:
C_GE_R_TOO_FEW_POINTS: R_GE_R_TOO_FEW_POINTS:
enabled: true enabled: true
C_GE_R_NOT_CLOSED: R_GE_R_NOT_CLOSED:
enabled: true enabled: true
C_GE_R_DUPLICATE_POINT: R_GE_R_CONSECUTIVE_POINTS_SAME:
enabled: true enabled: true
C_GE_R_SELF_INTERSECTION: R_GE_R_SELF_INTERSECTION:
enabled: true enabled: true
C_GE_S_MULTIPLE_CONNECTED_COMPONENTS: R_GE_S_MULTIPLE_CONNECTED_COMPONENTS:
enabled: true enabled: true
C_GE_P_INTERIOR_DISCONNECTED: R_GE_P_INTERIOR_DISCONNECTED:
enabled: true enabled: true
C_GE_P_INTERSECTING_RINGS: R_GE_P_INTERSECTING_RINGS:
enabled: true enabled: true
C_GE_P_NON_PLANAR: R_GE_P_NON_PLANAR:
enabled: false enabled: false
parameters: parameters:
# one of ("distance", "angle", "both") # one of ("distance", "angle", "both")
type: distance type: distance
# in m
distanceTolerance: 0.01 distanceTolerance: 0.01
angleTolerance: 0.1 # in degree
C_GE_P_HOLE_OUTSIDE: angleTolerance: 1
# in m
degeneratedPolygonTolerance: 0
R_GE_P_HOLE_OUTSIDE:
enabled: true enabled: true
C_GE_P_ORIENTATION_RINGS_SAME: R_GE_P_ORIENTATION_RINGS_SAME:
enabled: true enabled: true
C_GE_P_INNER_RINGS_NESTED: R_GE_P_INNER_RINGS_NESTED:
enabled: true enabled: true
C_GE_S_TOO_FEW_POLYGONS: R_GE_S_TOO_FEW_POLYGONS:
enabled: true enabled: true
C_GE_S_NOT_CLOSED: R_GE_S_NOT_CLOSED:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_EDGE: R_GE_S_NON_MANIFOLD_EDGE:
enabled: true enabled: true
C_GE_S_POLYGON_WRONG_ORIENTATION: R_GE_S_POLYGON_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION: R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_VERTEX: R_GE_S_NON_MANIFOLD_VERTEX:
enabled: true enabled: true
C_GE_S_SELF_INTERSECTION: R_GE_S_SELF_INTERSECTION:
enabled: true enabled: true
\ No newline at end of file
numberOfRoundingPlaces: 8 globalParameters:
numberOfRoundingPlaces: 8
minVertexDistance: 0.0001
filter: filter:
exclude: exclude:
# available types: BUILDING, VEGETATION, TRANSPORTATION, BRIDGE, LAND, WATER # available types: BUILDING, VEGETATION, TRANSPORTATION, BRIDGE, LAND, WATER
...@@ -6,45 +8,47 @@ filter: ...@@ -6,45 +8,47 @@ filter:
- BUILDING - BUILDING
# exlude matching ids (Regex) # exlude matching ids (Regex)
ids: ids:
checks: requirements:
C_GE_R_TOO_FEW_POINTS: R_GE_R_TOO_FEW_POINTS:
enabled: true enabled: true
C_GE_R_NOT_CLOSED: R_GE_R_NOT_CLOSED:
enabled: true enabled: true
C_GE_R_DUPLICATE_POINT: R_GE_R_CONSECUTIVE_POINTS_SAME:
enabled: true enabled: true
C_GE_R_SELF_INTERSECTION: R_GE_R_SELF_INTERSECTION:
enabled: true enabled: true
C_GE_S_MULTIPLE_CONNECTED_COMPONENTS: R_GE_S_MULTIPLE_CONNECTED_COMPONENTS:
enabled: true enabled: true
C_GE_P_INTERIOR_DISCONNECTED: R_GE_P_INTERIOR_DISCONNECTED:
enabled: true enabled: true
C_GE_P_INTERSECTING_RINGS: R_GE_P_INTERSECTING_RINGS:
enabled: true enabled: true
C_GE_P_NON_PLANAR: R_GE_P_NON_PLANAR:
enabled: false enabled: false
parameters: parameters:
# one of ("distance", "angle", "both") # one of ("distance", "angle", "both")
type: distance type: distance
# in m
distanceTolerance: 0.01 distanceTolerance: 0.01
angleTolerance: 0.1 # in degree
C_GE_P_HOLE_OUTSIDE: angleTolerance: 1
R_GE_P_HOLE_OUTSIDE:
enabled: true enabled: true
C_GE_P_ORIENTATION_RINGS_SAME: R_GE_P_ORIENTATION_RINGS_SAME:
enabled: true enabled: true
C_GE_P_INNER_RINGS_NESTED: R_GE_P_INNER_RINGS_NESTED:
enabled: true enabled: true
C_GE_S_TOO_FEW_POLYGONS: R_GE_S_TOO_FEW_POLYGONS:
enabled: true enabled: true
C_GE_S_NOT_CLOSED: R_GE_S_NOT_CLOSED:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_EDGE: R_GE_S_NON_MANIFOLD_EDGE:
enabled: true enabled: true
C_GE_S_POLYGON_WRONG_ORIENTATION: R_GE_S_POLYGON_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION: R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_VERTEX: R_GE_S_NON_MANIFOLD_VERTEX:
enabled: true enabled: true
C_GE_S_SELF_INTERSECTION: R_GE_S_SELF_INTERSECTION:
enabled: true enabled: true
\ No newline at end of file
numberOfRoundingPlaces: 8 globalParameters:
numberOfRoundingPlaces: 8
# in m
minVertexDistance: 0.0001
filter: filter:
include: include:
# available types: BUILDING, VEGETATION, TRANSPORTATION, BRIDGE, LAND, WATER # available types: BUILDING, VEGETATION, TRANSPORTATION, BRIDGE, LAND, WATER
...@@ -27,45 +30,47 @@ filter: ...@@ -27,45 +30,47 @@ filter:
- UUID-8972-kghf-asgv - UUID-8972-kghf-asgv
- UUID-567-asdf-GEGH - UUID-567-asdf-GEGH
- UUID.* - UUID.*
checks: requirements:
C_GE_R_TOO_FEW_POINTS: R_GE_R_TOO_FEW_POINTS:
enabled: true enabled: true
C_GE_R_NOT_CLOSED: R_GE_R_NOT_CLOSED:
enabled: true enabled: true
C_GE_R_DUPLICATE_POINT: R_GE_R_CONSECUTIVE_POINTS_SAME:
enabled: true enabled: true
C_GE_R_SELF_INTERSECTION: R_GE_R_SELF_INTERSECTION:
enabled: true enabled: true
C_GE_S_MULTIPLE_CONNECTED_COMPONENTS: R_GE_S_MULTIPLE_CONNECTED_COMPONENTS:
enabled: true enabled: true
C_GE_P_INTERIOR_DISCONNECTED: R_GE_P_INTERIOR_DISCONNECTED:
enabled: true enabled: true
C_GE_P_INTERSECTING_RINGS: R_GE_P_INTERSECTING_RINGS:
enabled: true enabled: true
C_GE_P_NON_PLANAR: R_GE_P_NON_PLANAR:
enabled: false enabled: false
parameters: parameters:
# one of ("distance", "angle", "both") # one of ("distance", "angle", "both")
type: distance type: distance
# in m
distanceTolerance: 0.01 distanceTolerance: 0.01
angleTolerance: 0.1 # in degree
C_GE_P_HOLE_OUTSIDE: angleTolerance: 1
R_GE_P_HOLE_OUTSIDE:
enabled: true enabled: true
C_GE_P_ORIENTATION_RINGS_SAME: R_GE_P_ORIENTATION_RINGS_SAME:
enabled: true enabled: true
C_GE_P_INNER_RINGS_NESTED: R_GE_P_INNER_RINGS_NESTED:
enabled: true enabled: true
C_GE_S_TOO_FEW_POLYGONS: R_GE_S_TOO_FEW_POLYGONS:
enabled: true enabled: true
C_GE_S_NOT_CLOSED: R_GE_S_NOT_CLOSED:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_EDGE: R_GE_S_NON_MANIFOLD_EDGE:
enabled: true enabled: true
C_GE_S_POLYGON_WRONG_ORIENTATION: R_GE_S_POLYGON_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION: R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_VERTEX: R_GE_S_NON_MANIFOLD_VERTEX:
enabled: true enabled: true
C_GE_S_SELF_INTERSECTION: R_GE_S_SELF_INTERSECTION:
enabled: true enabled: true
\ No newline at end of file
numberOfRoundingPlaces: 8 globalParameters:
numberOfRoundingPlaces: 8
filter: filter:
include: include:
# available types: BUILDING, VEGETATION, TRANSPORTATION, BRIDGE, LAND, WATER # available types: BUILDING, VEGETATION, TRANSPORTATION, BRIDGE, LAND, WATER
types: types:
- TRANSPORTATION - TRANSPORTATION
checks: requirements:
C_GE_R_TOO_FEW_POINTS: R_GE_R_TOO_FEW_POINTS:
enabled: true enabled: true
C_GE_R_NOT_CLOSED: R_GE_R_NOT_CLOSED:
enabled: true enabled: true
C_GE_R_DUPLICATE_POINT: R_GE_R_CONSECUTIVE_POINTS_SAME:
enabled: true enabled: true
C_GE_R_SELF_INTERSECTION: R_GE_R_SELF_INTERSECTION:
enabled: true enabled: true
C_GE_S_MULTIPLE_CONNECTED_COMPONENTS: R_GE_S_MULTIPLE_CONNECTED_COMPONENTS:
enabled: true enabled: true
C_GE_P_INTERIOR_DISCONNECTED: R_GE_P_INTERIOR_DISCONNECTED:
enabled: true enabled: true
C_GE_P_INTERSECTING_RINGS: R_GE_P_INTERSECTING_RINGS:
enabled: true enabled: true
C_GE_P_NON_PLANAR: R_GE_P_NON_PLANAR:
enabled: false enabled: false
parameters: parameters:
# one of ("distance", "angle", "both") # one of ("distance", "angle", "both")
type: distance type: distance
distanceTolerance: 0.01 distanceTolerance: 0.01
angleTolerance: 0.1 angleTolerance: 0.1
C_GE_P_HOLE_OUTSIDE: R_GE_P_HOLE_OUTSIDE:
enabled: true enabled: true
C_GE_P_ORIENTATION_RINGS_SAME: R_GE_P_ORIENTATION_RINGS_SAME:
enabled: true enabled: true
C_GE_P_INNER_RINGS_NESTED: R_GE_P_INNER_RINGS_NESTED:
enabled: true enabled: true
C_GE_S_TOO_FEW_POLYGONS: R_GE_S_TOO_FEW_POLYGONS:
enabled: true enabled: true
C_GE_S_NOT_CLOSED: R_GE_S_NOT_CLOSED:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_EDGE: R_GE_S_NON_MANIFOLD_EDGE:
enabled: true enabled: true
C_GE_S_POLYGON_WRONG_ORIENTATION: R_GE_S_POLYGON_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION: R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_VERTEX: R_GE_S_NON_MANIFOLD_VERTEX:
enabled: true enabled: true
C_GE_S_SELF_INTERSECTION: R_GE_S_SELF_INTERSECTION:
enabled: true enabled: true
\ No newline at end of file
numberOfRoundingPlaces: 8 globalParameters:
numberOfRoundingPlaces: 8
schematronFilePath: src/test/resources/schematronTest.xml
useStreaming: true useStreaming: true
schematronFilePath: src/test/resources/schematronTest.xml requirements:
checks: R_GE_R_TOO_FEW_POINTS:
C_GE_R_TOO_FEW_POINTS:
enabled: true enabled: true
C_GE_R_NOT_CLOSED: R_GE_R_NOT_CLOSED:
enabled: true enabled: true
C_GE_R_DUPLICATE_POINT: R_GE_R_CONSECUTIVE_POINTS_SAME:
enabled: true enabled: true
C_GE_R_SELF_INTERSECTION: R_GE_R_SELF_INTERSECTION:
enabled: true enabled: true
C_GE_S_MULTIPLE_CONNECTED_COMPONENTS: R_GE_S_MULTIPLE_CONNECTED_COMPONENTS:
enabled: true enabled: true
C_GE_P_INTERIOR_DISCONNECTED: R_GE_P_INTERIOR_DISCONNECTED:
enabled: true enabled: true
C_GE_P_INTERSECTING_RINGS: R_GE_P_INTERSECTING_RINGS:
enabled: true enabled: true
C_GE_P_NON_PLANAR: R_GE_P_NON_PLANAR:
enabled: false enabled: false
parameters: parameters:
# one of ("distance", "angle", "both") # one of ("distance", "angle", "both")
type: distance type: distance
distanceTolerance: 0.01 distanceTolerance: 0.01
angleTolerance: 0.1 angleTolerance: 0.1
C_GE_P_HOLE_OUTSIDE: R_GE_P_HOLE_OUTSIDE:
enabled: true enabled: true
C_GE_P_ORIENTATION_RINGS_SAME: R_GE_P_ORIENTATION_RINGS_SAME:
enabled: true enabled: true
C_GE_P_INNER_RINGS_NESTED: R_GE_P_INNER_RINGS_NESTED:
enabled: true enabled: true
C_GE_S_TOO_FEW_POLYGONS: R_GE_S_TOO_FEW_POLYGONS:
enabled: true enabled: true
C_GE_S_NOT_CLOSED: R_GE_S_NOT_CLOSED:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_EDGE: R_GE_S_NON_MANIFOLD_EDGE:
enabled: true enabled: true
C_GE_S_POLYGON_WRONG_ORIENTATION: R_GE_S_POLYGON_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_ALL_POLYGONS_WRONG_ORIENTATION: R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION:
enabled: true enabled: true
C_GE_S_NON_MANIFOLD_VERTEX: R_GE_S_NON_MANIFOLD_VERTEX:
enabled: true enabled: true
C_GE_S_SELF_INTERSECTION: R_GE_S_SELF_INTERSECTION:
enabled: true enabled: true
\ No newline at end of file
Markdown is supported
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