@Test
    public void testPerpendicularCollision() {
        Ray r = new Ray(new Vector3f(0f, 40f, 0f), Vector3f.UNIT_Y.negate());
        CollisionResults cr = new CollisionResults();
        int cw = quad.collideWith(r, cr);

        Assert.assertEquals(1, cw);
        Assert.assertEquals(1, cr.size());
        Assert.assertEquals(new Vector3f(0f, 28f, 0f), cr.getClosestCollision().getContactPoint());
        Assert.assertEquals(new Vector3f(-0.5144958f, 0.6859944f, 0.5144958f), cr.getClosestCollision().getContactNormal());
        Assert.assertEquals(12, cr.getClosestCollision().getDistance(), 0.01d);
        Assert.assertEquals(0, cr.getClosestCollision().getTriangleIndex());
    }
Due to a previous bug, when no collision should happen, the CollisionResults struct was still populated, leading
to an incoherency of data and ghost collisions when passing a non-empty CR.
jme3-terrain/src/test/java/com/jme3/terrain/collision/TerrainCollisionTest.java