Unverified Commit d4fe4b7e authored by Ľubomír Jurčišin's avatar Ľubomír Jurčišin
Browse files

trivial test with delta

parent fac4b591
Loading
Loading
Loading
Loading
+30 −16
Original line number Diff line number Diff line
@@ -7,7 +7,6 @@ import cz.fidentis.analyst.engines.distance.impl.MeshDistanceNNGPU;
import cz.fidentis.analyst.engines.distance.impl.MeshDistancePreciseGPU;
import cz.fidentis.analyst.engines.raycasting.impl.SpatialDataProvider;
import cz.fidentis.analyst.opencl.OpenCLServices;
import cz.fidentis.analyst.data.kdtree.impl.LeftBalancedKdTreeImpl;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
@@ -22,7 +21,7 @@ import java.util.ArrayList;
import static org.junit.jupiter.api.Assertions.*;


public class MeshDistanceGPUTest extends MeshDistanceTest {
public class MeshDistanceGPUTest {
    private final float VERTEX_DELTA = 0.0001f;
    private final float SURFACE_DELTA = 0.05f;
    private static final int RANDOM_VERTEX_COUNT = 1500;
@@ -58,7 +57,7 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {

    protected void distancesEqual(ArrayList<Double> expected, FacetDistances tested, float delta) {
        for (int i = 0; i < expected.size(); i++) {
            assertEquals(expected.get(i), tested.get(i).getDistance(), delta);
            assertEquals(expected.get(i), tested.get(i).getDistance(), delta);  // can't use assertArrayEquals as it doesn't support delta
        }
    }

@@ -73,14 +72,29 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {
    @Test
    @DisabledIf("OpenCLNotAvailable")
    public void NNTrivialTest() {
        MeshModel first = getTrivialModel(1.0, 1.0);
        MeshModel second = getTrivialModel(1.5, 1.0);
        ArrayList<Point3d> firstTriangle = new ArrayList<>() {{
            add(new Point3d(1, 0, 0));
            add(new Point3d(0, 1, 0));
            add(new Point3d(0, 0, 0));
        }};
        ArrayList<Point3d> secondTriangle = new ArrayList<>() {{
            add(new Point3d(1, 0, 0.5));
            add(new Point3d(0, 1, 0.5));
            add(new Point3d(0, 0, 0.5));
        }};
        ArrayList<Double> expectedDistances = new ArrayList<>() {{
            add(0.5);
            add(0.5);
            add(0.5);
        }};
        MeshFacet first = testDataProvider.createFacet(firstTriangle);
        MeshFacet second = testDataProvider.createFacet(secondTriangle);

        LeftBalancedKdTreeImpl kdTree = new LeftBalancedKdTreeImpl(first.getFacets());
        MeshDistanceConfig config = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_POINT_NEAREST_NEIGHBORS_GPU, kdTree, false, false);
        MeshDistanceNNGPU DistanceGPU = (MeshDistanceNNGPU) config.getVisitor();
        MeshDistanceConfig configGPU = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_POINT_NEAREST_NEIGHBORS_GPU, first, null, false, false);
        MeshDistanceNNGPU GPUVisitor = (MeshDistanceNNGPU) configGPU.getVisitor();
        second.accept(GPUVisitor);

        testDist(DistanceGPU, first, second, 0.5);
        distancesEqual(expectedDistances, GPUVisitor.getDistancesOfVisitedFacets().getFacetMeasurement(second), VERTEX_DELTA);
    }


@@ -120,7 +134,7 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {

    @Test
    @DisabledIf("OpenCLNotAvailable")
    public void NNFaceTest() throws IOException {
    public void NNFaceTest() {
        MeshDistanceConfig configGPU = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_POINT_NEAREST_NEIGHBORS_GPU, firstFace, null, false, false);
        MeshDistanceNNGPU GPUVisitor = (MeshDistanceNNGPU) configGPU.getVisitor();
        secondFace.accept(GPUVisitor);
@@ -136,7 +150,7 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {

    @Test
    @DisabledIf("OpenCLNotAvailable")
    public void NNFaceTestRelative() throws IOException {
    public void NNFaceTestRelative() {
        MeshDistanceConfig configGPU = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_POINT_NEAREST_NEIGHBORS_GPU, firstFace, null, true, false);
        MeshDistanceNNGPU GPUVisitor = (MeshDistanceNNGPU) configGPU.getVisitor();
        secondFace.accept(GPUVisitor);
@@ -152,7 +166,7 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {

    @Test
    @DisabledIf("OpenCLNotAvailable")
    public void NNFaceTestCrop() throws IOException {
    public void NNFaceTestCrop() {
        MeshDistanceConfig configGPU = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_POINT_NEAREST_NEIGHBORS_GPU, firstFace, null, false, true);
        MeshDistanceNNGPU GPUVisitor = (MeshDistanceNNGPU) configGPU.getVisitor();
        secondFace.accept(GPUVisitor);
@@ -309,7 +323,7 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {

    @Test
    @DisabledIf("OpenCLNotAvailable")
    public void FaceTriangleDistance() throws IOException {
    public void FaceTriangleDistance() {
        MeshDistanceConfig configGPU = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_TRIANGLE_NEAREST_NEIGHBORS_GPU, firstFace, null, false, false);
        MeshDistanceNNGPU GPUVisitor = (MeshDistanceNNGPU) configGPU.getVisitor();
        secondFace.accept(GPUVisitor);
@@ -325,7 +339,7 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {

    @Test
    @DisabledIf("OpenCLNotAvailable")
    public void FaceTriangleRelativeDistance() throws IOException {
    public void FaceTriangleRelativeDistance() {
        MeshDistanceConfig configGPU = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_TRIANGLE_NEAREST_NEIGHBORS_GPU, firstFace, null, true, false);
        MeshDistanceNNGPU GPUVisitor = (MeshDistanceNNGPU) configGPU.getVisitor();
        secondFace.accept(GPUVisitor);
@@ -378,7 +392,7 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {
    @Test
    @Disabled
    @DisabledIf("OpenCLNotAvailable")
    public void PreciseSurfaceTest() throws IOException {
    public void PreciseSurfaceTest() {
        MeshDistanceConfig configCPU = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_TRIANGLE_NEAREST_NEIGHBORS, firstFace, null, false, false);
        MeshDistanceNN CPUVisitor = (MeshDistanceNN) configCPU.getVisitor();
        secondFace.accept(CPUVisitor);
@@ -397,7 +411,7 @@ public class MeshDistanceGPUTest extends MeshDistanceTest {
    @Test
    @Disabled
    @DisabledIf("OpenCLNotAvailable")
    public void PreciseSurfaceRelativeDistanceTest() throws IOException {
    public void PreciseSurfaceRelativeDistanceTest() {
        MeshDistanceConfig configCPU = new MeshDistanceConfig(MeshDistanceConfig.Method.POINT_TO_TRIANGLE_NEAREST_NEIGHBORS, firstFace, null, true, false);
        MeshDistanceNN CPUVisitor = (MeshDistanceNN) configCPU.getVisitor();
        secondFace.accept(CPUVisitor);