Beispiel #1
0
        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));
            });
        }
Beispiel #2
0
        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}");
            }
        }