public void TestRoundToTickNotAtMidPoint(MidpointRoundingMode mode) { const int range = 6; var epsilon = new BigRational(1, 12); var tick = new BigRational(1, 3); var max = range * tick; var min = -range * tick; for (BigRational rational = min; rational <= max; rational += tick) { AssertEqual(rational, BigRational.RoundToTick(rational + epsilon, tick, mode)); AssertEqual(rational, BigRational.RoundToTick(rational - epsilon, tick, mode)); AssertEqual(rational, BigRational.RoundToTick(rational, tick, mode)); } }
public void RoundToTickWithTickError() { Assert.Throws <ArgumentException>(() => BigRational.RoundToTick(1, new BigRational(-1, 2), default)); }
public void TestRoundToTickAtMidPoint(string unrounded, string tick, MidpointRoundingMode mode, string expected) { AssertEqual( BigRational.RoundToTick(BigRational.Parse(unrounded), BigRational.Parse(tick), mode), BigRational.Parse(expected)); }
public void RoundToTickWithModeError() { Assert.Throws <ArgumentException>(() => BigRational.RoundToTick(1, new BigRational(1, 2), (MidpointRoundingMode)100)); }