public void CalculatesAbsFloorRemCorrectly(int divisor, int testDividend) { var int32Divisor = new Int32Divisor(divisor); var remainder = int32Divisor.AbsFloorRem(testDividend, out var rounded); Console.WriteLine($"rounded:{rounded}, remainder:{remainder}"); Assert.Multiple(() => { Assert.AreEqual(testDividend % divisor, remainder, SerializeDivisor(int32Divisor)); Assert.AreEqual(testDividend / divisor * divisor, rounded, SerializeDivisor(int32Divisor)); }); }
public void CalculatesAbsFloorRemCorrectlyRandomNumerators(int divisor) { var int32Divisor = new Int32Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = unchecked ((int)rng.Next()); var remainder = int32Divisor.AbsFloorRem(testDividend, out var rounded); Assert.AreEqual(testDividend % divisor, remainder, $"Trying to test {testDividend} % {divisor}"); Assert.AreEqual(testDividend / divisor * divisor, rounded, $"Trying to test {testDividend} / {divisor} * {divisor}"); } }