John Barnes - 2015-07-30

I have seen this problem again (with the Sleep() in place) in a scenario where the function CanGetValueSetWithoutExtrapolationAt() had an argument with a time value of 11716.444770600003 and the Last item in the _cache had a time value of 11716.4447706. One of the components in the composition was compiled with SilverFrost FORTRAN will the others were complied with gFORTRAN and the calculated time values differed very slightly.

Seems wrong that this statement:

        return Time.EndTime(_cache.Last().Time) >= Time.EndTime(at);

is comparing double values for equality with no tolerance. The Time class has some support for tolerant comparisons but that is not being used in this case.