src/main/java/com/conveyal/gtfs/validator/SpeedTripValidator.java
private void checkShapeDistTraveled(StopTime previous, StopTime current) {
        if (
            current.shape_dist_traveled != Entity.DOUBLE_MISSING &&
            (
                previous.shape_dist_traveled == Entity.DOUBLE_MISSING ||
                current.shape_dist_traveled <= previous.shape_dist_traveled
            )
        ) {
            registerError(current, SHAPE_DIST_TRAVELED_NOT_INCREASING, current.shape_dist_traveled);
        }
    }
private void checkShapeDistTraveled(StopTime previous, StopTime current) {
        if (
            current.shape_dist_traveled != Entity.DOUBLE_MISSING &&
            (
                previous.shape_dist_traveled == Entity.DOUBLE_MISSING ||
                current.shape_dist_traveled <= previous.shape_dist_traveled
            )
        ) {
            registerError(current, SHAPE_DIST_TRAVELED_NOT_INCREASING, current.shape_dist_traveled);
        }
    }
Register shape dist traveled error if current stop time has a value AND either and the previous value is
missing (if at least one stop time has a value, all stop times for the trip should) OR if current value
is less than or equal to the previous value. Note: if the previous shape_dist_traveled value is present and the
current value is missing, the previous value will be greater than the current stop time's value because
{@link Entity#DOUBLE_MISSING} is the lowest possible double value. This in turn will register an error.