public void RejectsStreamMomentOutsideRange()
        {
            var streamable = new InterpolatingStreamable <Interpolable>(
                new Interpolable(),
                new Interpolable(),
                new DoubleStreamMoment(10),
                new DoubleStreamMoment(20));

            Assert.That(() => streamable.AtMoment(new DoubleStreamMoment(9)), Throws.InstanceOf <ArgumentOutOfRangeException>());
            Assert.That(() => streamable.AtMoment(new DoubleStreamMoment(20.5)), Throws.InstanceOf <ArgumentOutOfRangeException>());
        }
        public void CallsCorrectInterpolationFraction(double fraction)
        {
            var streamable = new InterpolatingStreamable <Interpolable>(
                new Interpolable(),
                new Interpolable(),
                new DoubleStreamMoment(1),
                new DoubleStreamMoment(101));

            var x = streamable.AtMoment(new DoubleStreamMoment(fraction * 100 + 1));

            Assert.That(x.Value, Is.EqualTo(fraction));
        }