public Distance predictedVerticalSeparation(Instant curTime, Duration timeStep) {
        return predictedSeparation(verticalDistances, curTime, timeStep);
    }
@Test
    public void testPredictedVerticalSeparation() {
        Distance[] verticalDistances = new Distance[]{
            Distance.ofFeet(200),
            Distance.ofFeet(100),
            Distance.ofFeet(200)
        };

        SeparationTimeSeries instance = new SeparationTimeSeries(
            times(),
            verticalDistances,
            horizontalDistances()
        );

        //start a 180 separation...should drop to 120 ft after 3 seconds
        assertEquals(
            120.0,
            instance.predictedVerticalSeparation(EPOCH.plusSeconds(1), Duration.ofSeconds(3)).inFeet(),
            0.000001
        );
        //start a 180 separation...should drop to 0 ft after 9 seconds
        assertEquals(
            0.0, //in feet
            instance.predictedVerticalSeparation(EPOCH.plusSeconds(1), Duration.ofSeconds(9)).inFeet(),
            0.000001
        );
        //start a 180 separation...should go back up to 20 ft after 10 seconds
        assertEquals(
            20.0, //in feet
            instance.predictedVerticalSeparation(EPOCH.plusSeconds(1), Duration.ofSeconds(10)).inFeet(),
            0.000001
        );
        //start a 120 separation...should go up to 320 ft after 10 seconds
        assertEquals(
            320.0, //in feet
            instance.predictedVerticalSeparation(EPOCH.plusSeconds(6), Duration.ofSeconds(10)).inFeet(),
            0.000001
        );
    }