public boolean areWithin(Distance altitudeProximityReq, Distance lateralProximityReq) {
        //test the altitudeDelta first to reduce the number of calls to lateralDistance()
        return altitudeDelta().isLessThanOrEqualTo(altitudeProximityReq)
            && lateralDistance().isLessThanOrEqualTo(lateralProximityReq);
    }
@Test
    public void verifyLateralDistanceIsIgnoredIfAltitudeIsTooDifferent() {
        Distance requiredAltitudeProximity = Distance.ofFeet(500);

        //alt = 2400
        Point p1 = NopHit.from("[RH],STARS,A80_B,02/12/2018,18:36:46.667,JIA5545,CRJ9,E,5116,024,157,270,033.63143,-084.33913,1334,5116,22.4031,27.6688,1,O,A,A80,OZZ,OZZ,ATL,1827,ATL,ACT,IFR,,01719,,,,,27L,L,1,,0,{RH}");
        //alt = 3400
        Point p2 = NopHit.from("[RH],STARS,A80_B,02/12/2018,18:36:46.667,JIA5545,CRJ9,E,5116,034,157,270,033.63143,-084.33913,1334,5116,22.4031,27.6688,1,O,A,A80,OZZ,OZZ,ATL,1827,ATL,ACT,IFR,,01719,,,,,27L,L,1,,0,{RH}");

        assertEquals(p1.altitude().inFeet(), 2400.0, 0.01);
        assertEquals(p2.altitude().inFeet(), 3400.0, 0.01);

        PointPair pair = new PointPair(p1, p2);

        //IMPORTANT: no NPE is thrown...so we know we didn't compute the lateral distance
        assertFalse(pair.areWithin(requiredAltitudeProximity, null));
    }