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
...@@ -21,15 +21,18 @@ package de.hft.stuttgart.citydoctor2.checks.geometry; ...@@ -21,15 +21,18 @@ package de.hft.stuttgart.citydoctor2.checks.geometry;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckError; import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.GeometrySelfIntersection; import de.hft.stuttgart.citydoctor2.check.GeometrySelfIntersection;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.check.error.SolidSelfIntError; import de.hft.stuttgart.citydoctor2.check.error.SolidSelfIntError;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.checks.util.SelfIntersectionUtil; import de.hft.stuttgart.citydoctor2.checks.util.SelfIntersectionUtil;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; import de.hft.stuttgart.citydoctor2.datastructure.GeometryType;
...@@ -98,10 +101,15 @@ public class SolidSelfIntCheck extends Check { ...@@ -98,10 +101,15 @@ public class SolidSelfIntCheck extends Check {
public List<CheckId> getDependencies() { public List<CheckId> getDependencies() {
return dependencies; return dependencies;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return CollectionUtils.singletonSet(Requirement.R_GE_S_SELF_INTERSECTION);
}
@Override @Override
public CheckType getType() { public RequirementType getType() {
return CheckType.GEOMETRY; return RequirementType.GEOMETRY;
} }
@Override @Override
......
...@@ -28,23 +28,25 @@ import de.hft.stuttgart.citydoctor2.check.Check; ...@@ -28,23 +28,25 @@ import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckError; import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError; import de.hft.stuttgart.citydoctor2.check.error.RingTooFewPointsError;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing;
import de.hft.stuttgart.citydoctor2.datastructure.Vertex; import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
/** /**
* CP_NUMPOINTS checks the minimum number of point in a linear ring. At least * C_GE_R_TOO_FEW_POINTS checks the minimum number of point in a linear ring. At least
* three vertices are minimum for a linear ring. <br/> * three vertices are minimum for a linear ring. <br/>
* <br/> * <br/>
* <b>Dependency:</b> <br/> * <b>Dependency:</b> <br/>
* <dd> * <dd>
* <dd>none</dd></dd> * <dd>C_GE_R_NOT_CLOSED</dd></dd>
* *
* @author Matthias Betz - 12bema1bif@hft-stuttgart.de * @author Matthias Betz
*/ */
public class NumPointsCheck extends Check { public class TooFewPointsCheck extends Check {
private static final List<CheckId> dependencies; private static final List<CheckId> dependencies;
...@@ -95,15 +97,20 @@ public class NumPointsCheck extends Check { ...@@ -95,15 +97,20 @@ public class NumPointsCheck extends Check {
public List<CheckId> getDependencies() { public List<CheckId> getDependencies() {
return dependencies; return dependencies;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return CollectionUtils.singletonSet(Requirement.R_GE_R_TOO_FEW_POINTS);
}
@Override @Override
public CheckType getType() { public RequirementType getType() {
return CheckType.GEOMETRY; return RequirementType.GEOMETRY;
} }
@Override @Override
public Check createNewInstance() { public Check createNewInstance() {
return new NumPointsCheck(); return new TooFewPointsCheck();
} }
@Override @Override
......
...@@ -21,21 +21,24 @@ package de.hft.stuttgart.citydoctor2.checks.geometry; ...@@ -21,21 +21,24 @@ package de.hft.stuttgart.citydoctor2.checks.geometry;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckError; import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError; import de.hft.stuttgart.citydoctor2.check.error.TooFewPolygonsError;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
import de.hft.stuttgart.citydoctor2.datastructure.GeometryType; import de.hft.stuttgart.citydoctor2.datastructure.GeometryType;
/** /**
* This class checks minimum number of planes for a solid * This class checks minimum number of polygons for a solid
* *
* @author Matthias Betz 12bema1bif@hft-stuttgart.de * @author Matthias Betz
*/ */
public class TooFewPolygonsCheck extends Check { public class TooFewPolygonsCheck extends Check {
...@@ -59,7 +62,6 @@ public class TooFewPolygonsCheck extends Check { ...@@ -59,7 +62,6 @@ public class TooFewPolygonsCheck extends Check {
* not. * not.
* *
* @param toBeCheckedGeometry The ViewableGeometry that has to be checked. * @param toBeCheckedGeometry The ViewableGeometry that has to be checked.
* @return Vector of CDErrors
*/ */
@Override @Override
public void check(Geometry g) { public void check(Geometry g) {
...@@ -81,10 +83,15 @@ public class TooFewPolygonsCheck extends Check { ...@@ -81,10 +83,15 @@ public class TooFewPolygonsCheck extends Check {
public List<CheckId> getDependencies() { public List<CheckId> getDependencies() {
return dependencies; return dependencies;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return CollectionUtils.singletonSet(Requirement.R_GE_S_TOO_FEW_POLYGONS);
}
@Override @Override
public CheckType getType() { public RequirementType getType() {
return CheckType.GEOMETRY; return RequirementType.GEOMETRY;
} }
@Override @Override
......
...@@ -21,12 +21,15 @@ package de.hft.stuttgart.citydoctor2.checks.semantics; ...@@ -21,12 +21,15 @@ package de.hft.stuttgart.citydoctor2.checks.semantics;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.checks.util.UnfragmentedCheck; import de.hft.stuttgart.citydoctor2.checks.util.UnfragmentedCheck;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType;
...@@ -66,10 +69,15 @@ public class GroundSurfaceUnfragmented extends Check { ...@@ -66,10 +69,15 @@ public class GroundSurfaceUnfragmented extends Check {
public List<CheckId> getDependencies() { public List<CheckId> getDependencies() {
return dependencies; return dependencies;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return CollectionUtils.singletonSet(Requirement.R_SE_BS_GROUND_UNFRAGMENTED);
}
@Override @Override
public CheckType getType() { public RequirementType getType() {
return CheckType.SEMANTIC; return RequirementType.SEMANTIC;
} }
@Override @Override
...@@ -79,7 +87,7 @@ public class GroundSurfaceUnfragmented extends Check { ...@@ -79,7 +87,7 @@ public class GroundSurfaceUnfragmented extends Check {
@Override @Override
public CheckId getCheckId() { public CheckId getCheckId() {
return CheckId.C_SEM_BS_GROUND_NOT_FRAGMENTED; return CheckId.C_SE_BS_GROUND_NOT_FRAGMENTED;
} }
} }
...@@ -21,13 +21,16 @@ package de.hft.stuttgart.citydoctor2.checks.semantics; ...@@ -21,13 +21,16 @@ package de.hft.stuttgart.citydoctor2.checks.semantics;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.check.error.NotCeilingError; import de.hft.stuttgart.citydoctor2.check.error.NotCeilingError;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
...@@ -80,10 +83,15 @@ public class IsCeilingCheck extends Check { ...@@ -80,10 +83,15 @@ public class IsCeilingCheck extends Check {
public List<CheckId> getDependencies() { public List<CheckId> getDependencies() {
return dependencies; return dependencies;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return CollectionUtils.singletonSet(Requirement.R_SE_BS_IS_CEILING);
}
@Override @Override
public CheckType getType() { public RequirementType getType() {
return CheckType.SEMANTIC; return RequirementType.SEMANTIC;
} }
@Override @Override
...@@ -93,7 +101,7 @@ public class IsCeilingCheck extends Check { ...@@ -93,7 +101,7 @@ public class IsCeilingCheck extends Check {
@Override @Override
public CheckId getCheckId() { public CheckId getCheckId() {
return CheckId.C_SEM_BS_NOT_CEILING; return CheckId.C_SE_BS_IS_CEILING;
} }
} }
...@@ -21,13 +21,16 @@ package de.hft.stuttgart.citydoctor2.checks.semantics; ...@@ -21,13 +21,16 @@ package de.hft.stuttgart.citydoctor2.checks.semantics;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.check.error.NotFloorError; import de.hft.stuttgart.citydoctor2.check.error.NotFloorError;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
...@@ -83,8 +86,13 @@ public class IsFloorCheck extends Check { ...@@ -83,8 +86,13 @@ public class IsFloorCheck extends Check {
} }
@Override @Override
public CheckType getType() { public Set<Requirement> appliesToRequirements() {
return CheckType.SEMANTIC; return CollectionUtils.singletonSet(Requirement.R_SE_BS_IS_FLOOR);
}
@Override
public RequirementType getType() {
return RequirementType.SEMANTIC;
} }
@Override @Override
...@@ -94,7 +102,7 @@ public class IsFloorCheck extends Check { ...@@ -94,7 +102,7 @@ public class IsFloorCheck extends Check {
@Override @Override
public CheckId getCheckId() { public CheckId getCheckId() {
return CheckId.C_SEM_BS_NOT_FLOOR; return CheckId.C_SE_BS_IS_FLOOR;
} }
} }
...@@ -21,13 +21,16 @@ package de.hft.stuttgart.citydoctor2.checks.semantics; ...@@ -21,13 +21,16 @@ package de.hft.stuttgart.citydoctor2.checks.semantics;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Set;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.check.error.NotGroundError; import de.hft.stuttgart.citydoctor2.check.error.NotGroundError;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
...@@ -80,10 +83,15 @@ public class IsGroundCheck extends Check { ...@@ -80,10 +83,15 @@ public class IsGroundCheck extends Check {
public List<CheckId> getDependencies() { public List<CheckId> getDependencies() {
return dependencies; return dependencies;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return CollectionUtils.singletonSet(Requirement.R_SE_BS_IS_GROUND);
}
@Override @Override
public CheckType getType() { public RequirementType getType() {
return CheckType.SEMANTIC; return RequirementType.SEMANTIC;
} }
@Override @Override
...@@ -93,6 +101,6 @@ public class IsGroundCheck extends Check { ...@@ -93,6 +101,6 @@ public class IsGroundCheck extends Check {
@Override @Override
public CheckId getCheckId() { public CheckId getCheckId() {
return CheckId.C_SEM_BS_NOT_GROUND; return CheckId.C_SE_BS_IS_GROUND;
} }
} }
...@@ -22,15 +22,18 @@ import java.util.ArrayList; ...@@ -22,15 +22,18 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.DefaultParameter; import de.hft.stuttgart.citydoctor2.check.DefaultParameter;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.check.Unit; import de.hft.stuttgart.citydoctor2.check.Unit;
import de.hft.stuttgart.citydoctor2.check.error.NotWallError; import de.hft.stuttgart.citydoctor2.check.error.NotWallError;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
...@@ -132,14 +135,19 @@ public class IsWallCheck extends Check { ...@@ -132,14 +135,19 @@ public class IsWallCheck extends Check {
return dependencies; return dependencies;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return CollectionUtils.singletonSet(Requirement.R_SE_BS_IS_WALL);
}
@Override @Override
public List<DefaultParameter> getDefaultParameter() { public List<DefaultParameter> getDefaultParameter() {
return defaultParameters; return defaultParameters;
} }
@Override @Override
public CheckType getType() { public RequirementType getType() {
return CheckType.SEMANTIC; return RequirementType.SEMANTIC;
} }
@Override @Override
...@@ -149,7 +157,7 @@ public class IsWallCheck extends Check { ...@@ -149,7 +157,7 @@ public class IsWallCheck extends Check {
@Override @Override
public CheckId getCheckId() { public CheckId getCheckId() {
return CheckId.C_SEM_BS_IS_WALL; return CheckId.C_SE_BS_IS_WALL;
} }
} }
...@@ -22,13 +22,16 @@ import java.util.ArrayList; ...@@ -22,13 +22,16 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.DefaultParameter; import de.hft.stuttgart.citydoctor2.check.DefaultParameter;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.Unit; import de.hft.stuttgart.citydoctor2.check.Unit;
import de.hft.stuttgart.citydoctor2.checks.util.CollectionUtils;
import de.hft.stuttgart.citydoctor2.checks.util.UnfragmentedCheck; import de.hft.stuttgart.citydoctor2.checks.util.UnfragmentedCheck;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurface;
import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType; import de.hft.stuttgart.citydoctor2.datastructure.BoundarySurfaceType;
...@@ -91,10 +94,15 @@ public class RoofSurfaceUnfragmentedCheck extends Check { ...@@ -91,10 +94,15 @@ public class RoofSurfaceUnfragmentedCheck extends Check {
public List<DefaultParameter> getDefaultParameter() { public List<DefaultParameter> getDefaultParameter() {
return defaultParameters; return defaultParameters;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return CollectionUtils.singletonSet(Requirement.R_SE_BS_ROOF_UNFRAGMENTED);
}
@Override @Override
public CheckType getType() { public RequirementType getType() {
return CheckType.SEMANTIC; return RequirementType.SEMANTIC;
} }
@Override @Override
...@@ -104,7 +112,7 @@ public class RoofSurfaceUnfragmentedCheck extends Check { ...@@ -104,7 +112,7 @@ public class RoofSurfaceUnfragmentedCheck extends Check {
@Override @Override
public CheckId getCheckId() { public CheckId getCheckId() {
return CheckId.C_SEM_BS_ROOF_NOT_FRAGMENTED; return CheckId.C_SE_BS_ROOF_UNFRAGMENTED;
} }
} }
/*-
* Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart
*
* This file is part of CityDoctor2.
*
* CityDoctor2 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, either version 3 of the License, or
* (at your option) any later version.
*
* CityDoctor2 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.
*
* You should have received a copy of the GNU Lesser General Public License
* along with CityDoctor2. If not, see <https://www.gnu.org/licenses/>.
*/
package de.hft.stuttgart.citydoctor2.checks.util;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class CollectionUtils {
private CollectionUtils() {
}
public static <T> Set<T> singletonSet(T v) {
HashSet<T> set = new HashSet<>(2);
set.add(v);
return set;
}
@SafeVarargs
public static <T> Set<T> asSet(T... values) {
HashSet<T> set = new HashSet<>((int) (values.length * 1.25));
set.addAll(Arrays.asList(values));
return set;
}
}
...@@ -32,10 +32,9 @@ import java.util.concurrent.atomic.AtomicInteger; ...@@ -32,10 +32,9 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import de.hft.stuttgart.citydoctor2.check.CheckConfiguration;
import de.hft.stuttgart.citydoctor2.check.CheckError; import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.ErrorType; import de.hft.stuttgart.citydoctor2.check.ErrorType;
import de.hft.stuttgart.citydoctor2.check.RequirementConfiguration;
import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration; import de.hft.stuttgart.citydoctor2.check.ValidationConfiguration;
import de.hft.stuttgart.citydoctor2.checkresult.CheckReport; import de.hft.stuttgart.citydoctor2.checkresult.CheckReport;
import de.hft.stuttgart.citydoctor2.checkresult.Environment; import de.hft.stuttgart.citydoctor2.checkresult.Environment;
...@@ -115,10 +114,10 @@ public class XmlStreamReporter implements StreamReporter { ...@@ -115,10 +114,10 @@ public class XmlStreamReporter implements StreamReporter {
plan.setNumberOfRoundingPlaces(config.getNumberOfRoundingPlaces()); plan.setNumberOfRoundingPlaces(config.getNumberOfRoundingPlaces());
List<PlanCheck> checkConfigs = new ArrayList<>(); List<PlanCheck> checkConfigs = new ArrayList<>();
plan.setChecks(checkConfigs); plan.setChecks(checkConfigs);
for (Entry<CheckId, CheckConfiguration> e : config.getChecks().entrySet()) { for (Entry<String, RequirementConfiguration> e : config.getRequirements().entrySet()) {
PlanCheck checkConfig = new PlanCheck(); PlanCheck checkConfig = new PlanCheck();
checkConfigs.add(checkConfig); checkConfigs.add(checkConfig);
checkConfig.setName(e.getKey().toString()); checkConfig.setName(e.getKey());
if (e.getValue().isEnabled()) { if (e.getValue().isEnabled()) {
checkConfig.setActivated(true); checkConfig.setActivated(true);
Map<String, String> checkParams = e.getValue().getParameters(); Map<String, String> checkParams = e.getValue().getParameters();
......
...@@ -32,7 +32,7 @@ import java.util.concurrent.atomic.AtomicInteger; ...@@ -32,7 +32,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import de.hft.stuttgart.citydoctor2.check.CheckConfiguration; import de.hft.stuttgart.citydoctor2.check.RequirementConfiguration;
import de.hft.stuttgart.citydoctor2.check.CheckError; import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
...@@ -133,8 +133,8 @@ public class PdfStreamReporter implements StreamReporter { ...@@ -133,8 +133,8 @@ public class PdfStreamReporter implements StreamReporter {
if (config.getSchematronFilePath() != null && !config.getSchematronFilePath().isEmpty()) { if (config.getSchematronFilePath() != null && !config.getSchematronFilePath().isEmpty()) {
vp.addTextElement("Schematron file: " + config.getSchematronFilePath()); vp.addTextElement("Schematron file: " + config.getSchematronFilePath());
} }
for (Entry<CheckId, CheckConfiguration> e : config.getChecks().entrySet()) { for (Entry<String, RequirementConfiguration> e : config.getRequirements().entrySet()) {
String text = e.getKey().toString(); String text = e.getKey();
String color; String color;
if (e.getValue().isEnabled()) { if (e.getValue().isEnabled()) {
text = text + " = enabled"; text = text + " = enabled";
......
...@@ -51,8 +51,8 @@ public class CheckerTest { ...@@ -51,8 +51,8 @@ public class CheckerTest {
@Test @Test
public void testSchematron() throws CityGmlParseException, InvalidGmlFileException { public void testSchematron() throws CityGmlParseException, InvalidGmlFileException {
ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig(); ValidationConfiguration config = ValidationConfiguration.loadStandardValidationConfig();
config.getChecks().get(CheckId.C_SEM_BS_ROOF_NOT_FRAGMENTED).setEnabled(false); config.getRequirements().get(Requirement.R_SE_BS_ROOF_UNFRAGMENTED.toString()).setEnabled(false);
config.setSchematronFilePath("src/test/resources/schematronTest.xml"); config.setSchematronFilePathInGlobalParameters("src/test/resources/schematronTest.xml");
CityDoctorModel model = CityGmlParser.parseCityGmlFile( CityDoctorModel model = CityGmlParser.parseCityGmlFile(
"src/test/resources/SimpleSolid_SrefBS_SchematronTest.gml", config.getParserConfiguration()); "src/test/resources/SimpleSolid_SrefBS_SchematronTest.gml", config.getParserConfiguration());
Checker checker = new Checker(config, model); Checker checker = new Checker(config, model);
......
...@@ -25,6 +25,7 @@ import java.io.FileNotFoundException; ...@@ -25,6 +25,7 @@ import java.io.FileNotFoundException;
import org.junit.Test; import org.junit.Test;
import de.hft.stuttgart.citydoctor2.datastructure.FeatureType; import de.hft.stuttgart.citydoctor2.datastructure.FeatureType;
import de.hft.stuttgart.quality.model.jaxb.RequirementId;
public class ValidationConfigurationTest { public class ValidationConfigurationTest {
...@@ -33,33 +34,33 @@ public class ValidationConfigurationTest { ...@@ -33,33 +34,33 @@ public class ValidationConfigurationTest {
String file = "src/test/resources/testConfig.yml"; String file = "src/test/resources/testConfig.yml";
ValidationConfiguration config = ValidationConfiguration.loadValidationConfig(file); ValidationConfiguration config = ValidationConfiguration.loadValidationConfig(file);
assertEquals(8, config.getNumberOfRoundingPlaces()); assertEquals(8, config.getNumberOfRoundingPlaces());
assertTrue(config.getChecks().containsKey(CheckId.C_GE_R_TOO_FEW_POINTS)); assertTrue(config.getRequirements().containsKey(RequirementId.R_GE_R_TOO_FEW_POINTS.toString()));
assertTrue(config.getChecks().get(CheckId.C_GE_P_NON_PLANAR).isEnabled()); assertFalse(config.getRequirements().get(RequirementId.R_GE_P_NON_PLANAR.toString()).isEnabled());
assertNull(config.getFilter()); assertNull(config.getFilter());
} }
@Test @Test
public void testLoadingConfigWithFilter() throws FileNotFoundException { public void testLoadingConfigWithFilter() throws FileNotFoundException {
String file = "src/test/resources/testConfigWithFilter.yml"; String file = "src/test/resources/testConfigWithFilter.yml";
ValidationConfiguration config = ValidationConfiguration.loadValidationConfig(file); ValidationConfiguration config = ValidationConfiguration.loadValidationConfig(file);
assertEquals(8, config.getNumberOfRoundingPlaces()); assertEquals(8, config.getNumberOfRoundingPlaces());
assertTrue(config.getChecks().containsKey(CheckId.C_GE_R_TOO_FEW_POINTS)); assertTrue(config.getRequirements().containsKey(RequirementId.R_GE_R_TOO_FEW_POINTS.toString()));
assertTrue(config.getChecks().get(CheckId.C_GE_P_NON_PLANAR).isEnabled()); assertFalse(config.getRequirements().get(RequirementId.R_GE_P_NON_PLANAR.toString()).isEnabled());
FilterConfiguration filterConfig = config.getFilter(); FilterConfiguration filterConfig = config.getFilter();
assertNotNull(filterConfig); assertNotNull(filterConfig);
ExcludeFilterConfiguration excludeFilter = filterConfig.getExclude(); ExcludeFilterConfiguration excludeFilter = filterConfig.getExclude();
assertNotNull(excludeFilter); assertNotNull(excludeFilter);
assertTrue(excludeFilter.getIds().contains("UUID-8972-kghf-asgv")); assertTrue(excludeFilter.getIds().contains("UUID-8972-kghf-asgv"));
assertTrue(excludeFilter.getIds().contains("UUID.*")); assertTrue(excludeFilter.getIds().contains("UUID.*"));
assertTrue(excludeFilter.getTypes().contains(FeatureType.BUILDING)); assertTrue(excludeFilter.getTypes().contains(FeatureType.BUILDING));
assertTrue(excludeFilter.getTypes().contains(FeatureType.VEGETATION)); assertTrue(excludeFilter.getTypes().contains(FeatureType.VEGETATION));
IncludeFilterConfiguration includeFilter = filterConfig.getInclude(); IncludeFilterConfiguration includeFilter = filterConfig.getInclude();
assertNotNull(includeFilter); assertNotNull(includeFilter);
assertTrue(includeFilter.getIds().contains(".*")); assertTrue(includeFilter.getIds().contains(".*"));
assertTrue(includeFilter.getTypes().contains(FeatureType.BUILDING)); assertTrue(includeFilter.getTypes().contains(FeatureType.BUILDING));
assertTrue(includeFilter.getTypes().contains(FeatureType.VEGETATION)); assertTrue(includeFilter.getTypes().contains(FeatureType.VEGETATION));
......
...@@ -20,13 +20,16 @@ package de.hft.stuttgart.citydoctor2.checks; ...@@ -20,13 +20,16 @@ package de.hft.stuttgart.citydoctor2.checks;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import java.util.Set;
import org.junit.Test; import org.junit.Test;
import de.hft.stuttgart.citydoctor2.check.Check; import de.hft.stuttgart.citydoctor2.check.Check;
import de.hft.stuttgart.citydoctor2.check.CheckId; import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult; import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.CheckType; import de.hft.stuttgart.citydoctor2.check.RequirementType;
import de.hft.stuttgart.citydoctor2.check.ErrorId; import de.hft.stuttgart.citydoctor2.check.ErrorId;
import de.hft.stuttgart.citydoctor2.check.Requirement;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.datastructure.AbstractBuilding; import de.hft.stuttgart.citydoctor2.datastructure.AbstractBuilding;
import de.hft.stuttgart.citydoctor2.datastructure.Building; import de.hft.stuttgart.citydoctor2.datastructure.Building;
...@@ -43,7 +46,7 @@ public class CheckContainerTest { ...@@ -43,7 +46,7 @@ public class CheckContainerTest {
} }
@Override @Override
public CheckType getType() { public RequirementType getType() {
return null; return null;
} }
...@@ -56,6 +59,11 @@ public class CheckContainerTest { ...@@ -56,6 +59,11 @@ public class CheckContainerTest {
public CheckId getCheckId() { public CheckId getCheckId() {
return CheckId.C_GE_P_HOLE_OUTSIDE; return CheckId.C_GE_P_HOLE_OUTSIDE;
} }
@Override
public Set<Requirement> appliesToRequirements() {
return null;
}
}; };
CheckContainer cc = new CheckContainer(c); CheckContainer cc = new CheckContainer(c);
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
*/ */
package de.hft.stuttgart.citydoctor2.checks.geometry; package de.hft.stuttgart.citydoctor2.checks.geometry;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -29,9 +29,7 @@ import java.util.Map; ...@@ -29,9 +29,7 @@ import java.util.Map;
import org.junit.Test; import org.junit.Test;
import de.hft.stuttgart.citydoctor2.check.CheckError; import de.hft.stuttgart.citydoctor2.check.CheckError;
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.ErrorId;
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;
...@@ -43,10 +41,10 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType; ...@@ -43,10 +41,10 @@ import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType;
import de.hft.stuttgart.citydoctor2.datastructure.Lod; import de.hft.stuttgart.citydoctor2.datastructure.Lod;
import de.hft.stuttgart.citydoctor2.datastructure.Vertex; import de.hft.stuttgart.citydoctor2.datastructure.Vertex;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.quality.model.jaxb.RequirementId;
public class DegeneratedPolygonCheckTest { public class DegeneratedPolygonCheckTest {
@Test @Test
public void testDegeneratedPolygon() { public void testDegeneratedPolygon() {
Geometry geom = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD1); Geometry geom = new Geometry(GeometryType.MULTI_SURFACE, Lod.LOD1);
...@@ -65,38 +63,25 @@ public class DegeneratedPolygonCheckTest { ...@@ -65,38 +63,25 @@ public class DegeneratedPolygonCheckTest {
lr.getVertices().add(v4); lr.getVertices().add(v4);
lr.getVertices().add(v1); lr.getVertices().add(v1);
geom.updateEdgesAndVertices(); geom.updateEdgesAndVertices();
Building b = new Building(); Building b = new Building();
b.addGeometry(geom); b.addGeometry(geom);
ParserConfiguration config = new ParserConfiguration(8, false); ParserConfiguration config = new ParserConfiguration(8, false);
CityDoctorModel model = new CityDoctorModel(config, new File("")); CityDoctorModel model = new CityDoctorModel(config, new File(""));
model.addBuilding(b); model.addBuilding(b);
// model
// Edge [from=Vertex [x=427583.301, y=6003502.571, z=9.711], to=Vertex [x=427583.304, y=6003502.574, z=9.713]],
// Edge [from=Vertex [x=427583.304, y=6003502.574, z=9.713], to=Vertex [x=427583.304, y=6003502.574, z=4.097]],
// Edge [from=Vertex [x=427583.304, y=6003502.574, z=4.097], to=Vertex [x=427583.301, y=6003502.571, z=4.097]],
// Edge [from=Vertex [x=427583.301, y=6003502.571, z=4.097], to=Vertex [x=427583.301, y=6003502.571, z=9.711]]]
// test
// Edge [from=Vertex [x=427583.301, y=6003502.571, z=9.711], to=Vertex [x=427583.304, y=6003502.574, z=9.713]],
// Edge [from=Vertex [x=427583.304, y=6003502.574, z=9.713], to=Vertex [x=427583.304, y=6003502.574, z=4.097]],
// Edge [from=Vertex [x=427583.304, y=6003502.574, z=4.097], to=Vertex [x=427583.301, y=6003502.571, z=4.097]],
// Edge [from=Vertex [x=427583.301, y=6003502.571, z=4.097], to=Vertex [x=427583.301, y=6003502.571, z=9.711]]]
// Segment3d [pointA=Vertex [x=427583.301, y=6003502.571, z=9.711], pointB=Vertex [x=427583.304, y=6003502.574, z=9.713]]
// Vertex [x=427583.301, y=6003502.571, z=9.711]
ValidationConfiguration valConfig = ValidationConfiguration.loadStandardValidationConfig(); ValidationConfiguration valConfig = ValidationConfiguration.loadStandardValidationConfig();
valConfig.setMinVertexDistanceInGlobalParameters(0.004);
Map<String, String> parameters = new HashMap<>(); Map<String, String> parameters = new HashMap<>();
parameters.put("degeneratedPolygonTolerance", "0.0001"); parameters.put("degeneratedPolygonTolerance", "0.004");
valConfig.getChecks().get(CheckId.C_GE_P_NON_PLANAR).setParameters(parameters); valConfig.getRequirements().get(RequirementId.R_GE_P_NON_PLANAR.toString()).getParameters().putAll(parameters);
Checker c = new Checker(valConfig, model); Checker c = new Checker(valConfig, model);
c.runChecks(); c.runChecks();
List<CheckError> errors = new ArrayList<>(); List<CheckError> errors = new ArrayList<>();
b.collectContainedErrors(errors); b.collectContainedErrors(errors);
CheckError checkError = errors.get(0); assertTrue(errors.isEmpty());
assertEquals(ErrorId.GE_P_DEGENERATED_POLYGON, checkError.getErrorId());
} }
} }
...@@ -107,7 +107,7 @@ public class FaceOutCheckTest { ...@@ -107,7 +107,7 @@ public class FaceOutCheckTest {
public void testGoodGeometry() { public void testGoodGeometry() {
Geometry geom = createGoodGeometry(); Geometry geom = createGoodGeometry();
FaceOutCheck foc = new FaceOutCheck(); AllPolygonsWrongOrientationCheck foc = new AllPolygonsWrongOrientationCheck();
foc.check(geom); foc.check(geom);
Assert.assertEquals(ResultStatus.OK, geom.getCheckResult(foc).getResultStatus()); Assert.assertEquals(ResultStatus.OK, geom.getCheckResult(foc).getResultStatus());
...@@ -117,7 +117,7 @@ public class FaceOutCheckTest { ...@@ -117,7 +117,7 @@ public class FaceOutCheckTest {
public void testBadGeometry() { public void testBadGeometry() {
Geometry geom = createBadGeometry(); Geometry geom = createBadGeometry();
FaceOutCheck foc = new FaceOutCheck(); AllPolygonsWrongOrientationCheck foc = new AllPolygonsWrongOrientationCheck();
foc.check(geom); foc.check(geom);
Assert.assertEquals(ResultStatus.ERROR, geom.getCheckResult(foc).getResultStatus()); Assert.assertEquals(ResultStatus.ERROR, geom.getCheckResult(foc).getResultStatus());
......
...@@ -53,7 +53,7 @@ public class NumPointsCheckTest { ...@@ -53,7 +53,7 @@ public class NumPointsCheckTest {
lr.addVertex(v2); lr.addVertex(v2);
lr.addVertex(v0); lr.addVertex(v0);
NumPointsCheck check = new NumPointsCheck(); TooFewPointsCheck check = new TooFewPointsCheck();
ParserConfiguration config = new ParserConfiguration(8, false); ParserConfiguration config = new ParserConfiguration(8, false);
check.init(Collections.emptyMap(), config); check.init(Collections.emptyMap(), config);
check.check(lr); check.check(lr);
...@@ -79,7 +79,7 @@ public class NumPointsCheckTest { ...@@ -79,7 +79,7 @@ public class NumPointsCheckTest {
lr.addVertex(v3); lr.addVertex(v3);
lr.addVertex(v0); lr.addVertex(v0);
NumPointsCheck check = new NumPointsCheck(); TooFewPointsCheck check = new TooFewPointsCheck();
ParserConfiguration config = new ParserConfiguration(8, false); ParserConfiguration config = new ParserConfiguration(8, false);
check.init(Collections.emptyMap(), config); check.init(Collections.emptyMap(), config);
check.check(lr); check.check(lr);
......
...@@ -34,6 +34,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel; ...@@ -34,6 +34,7 @@ import de.hft.stuttgart.citydoctor2.datastructure.CityDoctorModel;
import de.hft.stuttgart.citydoctor2.datastructure.Geometry; import de.hft.stuttgart.citydoctor2.datastructure.Geometry;
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;
import de.hft.stuttgart.quality.model.jaxb.RequirementId;
/** /**
* *
...@@ -52,10 +53,10 @@ public class NonManifoldEdgeSystemTest { ...@@ -52,10 +53,10 @@ public class NonManifoldEdgeSystemTest {
@Test @Test
public void testNonManifoldEdge2() throws CityGmlParseException, IOException, InvalidGmlFileException { public void testNonManifoldEdge2() throws CityGmlParseException, IOException, InvalidGmlFileException {
Map<CheckId, Map<String, String>> paramMap = new HashMap<>(); Map<String, Map<String, String>> paramMap = new HashMap<>();
Map<String, String> parameter = new HashMap<>(); Map<String, String> parameter = new HashMap<>();
parameter.put("distanceTolerance", "0.1"); parameter.put("distanceTolerance", "0.1");
paramMap.put(CheckId.C_GE_P_NON_PLANAR, parameter); paramMap.put(RequirementId.R_GE_P_NON_PLANAR.toString(), parameter);
CityDoctorModel c = TestUtil.loadAndCheckCityModel("src/test/resources/SimpleSolid_SrefBS-GE-gml-SO-0004-T0001.gml", CityDoctorModel c = TestUtil.loadAndCheckCityModel("src/test/resources/SimpleSolid_SrefBS-GE-gml-SO-0004-T0001.gml",
paramMap); paramMap);
Geometry g = c.getBuildings().get(0).getGeometries().get(0); Geometry g = c.getBuildings().get(0).getGeometries().get(0);
......
...@@ -37,6 +37,7 @@ import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException; ...@@ -37,6 +37,7 @@ import de.hft.stuttgart.citydoctor2.parser.CityGmlParseException;
import de.hft.stuttgart.citydoctor2.parser.CityGmlParser; import de.hft.stuttgart.citydoctor2.parser.CityGmlParser;
import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException; import de.hft.stuttgart.citydoctor2.parser.InvalidGmlFileException;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.quality.model.jaxb.RequirementId;
/** /**
* *
...@@ -113,10 +114,10 @@ public class PlanarTest { ...@@ -113,10 +114,10 @@ public class PlanarTest {
@Test @Test
public void testPlanarPolygon4() throws CityGmlParseException, IOException, InvalidGmlFileException { public void testPlanarPolygon4() throws CityGmlParseException, IOException, InvalidGmlFileException {
Map<CheckId, Map<String, String>> paramMap = new HashMap<>(); Map<String, Map<String, String>> paramMap = new HashMap<>();
Map<String, String> parameter = new HashMap<>(); Map<String, String> parameter = new HashMap<>();
parameter.put("distanceTolerance", "0.01"); parameter.put("distanceTolerance", "0.01");
paramMap.put(CheckId.C_GE_P_NON_PLANAR, parameter); paramMap.put(RequirementId.R_GE_P_NON_PLANAR.toString(), parameter);
CityDoctorModel c = TestUtil.loadAndCheckCityModel("src/test/resources/SimpleSolid_SrefBS-GE-gml-PO-0002-T0001.gml", paramMap); CityDoctorModel c = TestUtil.loadAndCheckCityModel("src/test/resources/SimpleSolid_SrefBS-GE-gml-PO-0002-T0001.gml", paramMap);
Polygon p = TestUtil.getPolygonById("_Simple_BD.1_PG.2", c); Polygon p = TestUtil.getPolygonById("_Simple_BD.1_PG.2", c);
CheckResult cr = p.getCheckResult(CheckId.C_GE_P_NON_PLANAR); CheckResult cr = p.getCheckResult(CheckId.C_GE_P_NON_PLANAR);
...@@ -126,11 +127,11 @@ public class PlanarTest { ...@@ -126,11 +127,11 @@ public class PlanarTest {
@Test @Test
public void testPlanarPolygon5() throws CityGmlParseException, IOException, InvalidGmlFileException { public void testPlanarPolygon5() throws CityGmlParseException, IOException, InvalidGmlFileException {
Map<CheckId, Map<String, String>> paramMap = new HashMap<>(); Map<String, Map<String, String>> paramMap = new HashMap<>();
Map<String, String> parameter = new HashMap<>(); Map<String, String> parameter = new HashMap<>();
parameter.put("type", "distance"); parameter.put("type", "distance");
parameter.put("distanceTolerance", "0.5"); parameter.put("distanceTolerance", "0.5");
paramMap.put(CheckId.C_GE_P_NON_PLANAR, parameter); paramMap.put(RequirementId.R_GE_P_NON_PLANAR.toString(), parameter);
CityDoctorModel c = TestUtil.loadAndCheckCityModel("src/test/resources/SimpleSolid_SrefBS-GE-gml-PO-0002-T0001.gml", paramMap); CityDoctorModel c = TestUtil.loadAndCheckCityModel("src/test/resources/SimpleSolid_SrefBS-GE-gml-PO-0002-T0001.gml", paramMap);
Polygon p = TestUtil.getPolygonById("_Simple_BD.1_PG.2", c); Polygon p = TestUtil.getPolygonById("_Simple_BD.1_PG.2", c);
CheckResult cr = p.getCheckResult(CheckId.C_GE_P_NON_PLANAR); CheckResult cr = p.getCheckResult(CheckId.C_GE_P_NON_PLANAR);
...@@ -139,10 +140,10 @@ public class PlanarTest { ...@@ -139,10 +140,10 @@ public class PlanarTest {
@Test @Test
public void testPlanarPolygon6() throws CityGmlParseException, IOException, InvalidGmlFileException { public void testPlanarPolygon6() throws CityGmlParseException, IOException, InvalidGmlFileException {
Map<CheckId, Map<String, String>> paramMap = new HashMap<>(); Map<String, Map<String, String>> paramMap = new HashMap<>();
Map<String, String> parameter = new HashMap<>(); Map<String, String> parameter = new HashMap<>();
parameter.put("type", "both"); parameter.put("type", "both");
paramMap.put(CheckId.C_GE_P_NON_PLANAR, parameter); paramMap.put(RequirementId.R_GE_P_NON_PLANAR.toString(), parameter);
CityDoctorModel c = TestUtil.loadAndCheckCityModel("src/test/resources/SimpleSolid_SrefBS-GE-gml-PO-0002-T0002.gml", paramMap); CityDoctorModel c = TestUtil.loadAndCheckCityModel("src/test/resources/SimpleSolid_SrefBS-GE-gml-PO-0002-T0002.gml", paramMap);
Polygon p = TestUtil.getPolygonById("_Simple_BD.1_PG.1", c); Polygon p = TestUtil.getPolygonById("_Simple_BD.1_PG.1", c);
CheckResult cr = p.getCheckResult(CheckId.C_GE_P_NON_PLANAR); CheckResult cr = p.getCheckResult(CheckId.C_GE_P_NON_PLANAR);
......
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