Exemple #1
0
        public void CorrectlyDivides(long divisor, long testDividend)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var quotient     = testDividend / int64Divisor;

            Console.WriteLine($"quotient:{quotient}");
            Assert.AreEqual(testDividend / divisor, quotient, SerializeDivisor(int64Divisor));
        }
Exemple #2
0
        public void CalculatesAbsFloorCorrectly(long divisor, long testDividend)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var rounded      = int64Divisor.AbsFloor(testDividend);

            Console.WriteLine($"rounded:{rounded}");
            Assert.AreEqual(testDividend / divisor * divisor, rounded, SerializeDivisor(int64Divisor));
        }
Exemple #3
0
        public void CalculatesModulusCorrectly(long divisor, long testDividend)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var remainder    = testDividend % int64Divisor;

            Console.WriteLine($"remainder:{remainder}");
            Assert.AreEqual(testDividend % divisor, remainder, SerializeDivisor(int64Divisor));
        }
Exemple #4
0
        public void CalculatesAbsFloorCorrectlyRandomNumerators(long divisor)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var rng          = new PcgRandom();

            for (ulong i = 0; i < RandomTestCount; i++)
            {
                var testDividend = unchecked (rng.Next() | ((long)rng.Next() << 32));
                var rounded      = int64Divisor.AbsFloor(testDividend);
                Assert.AreEqual(testDividend / divisor * divisor, rounded, $"Trying to test {testDividend} / {divisor} * {divisor}");
            }
        }
Exemple #5
0
        public void CalculatesModulusCorrectlyRandomNumerators(long divisor)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var rng          = new PcgRandom();

            for (ulong i = 0; i < RandomTestCount; i++)
            {
                var testDividend = unchecked (rng.Next() | ((long)rng.Next() << 32));
                var remainder    = testDividend % int64Divisor;
                Assert.AreEqual(testDividend % divisor, remainder, $"Trying to test {testDividend} % {divisor}");
            }
        }
Exemple #6
0
        public void CorrectlyDividesRandomNumerators(long divisor)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var rng          = new PcgRandom();

            for (ulong i = 0; i < RandomTestCount; i++)
            {
                var testDividend = unchecked (rng.Next() | ((long)rng.Next() << 32));
                var quotient     = testDividend / int64Divisor;
                Assert.AreEqual(testDividend / divisor, quotient, $"Trying to test {testDividend} / {divisor}");
            }
        }
Exemple #7
0
        public void CalculatesAbsFloorRemCorrectly(long divisor, long testDividend)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var remainder    = int64Divisor.AbsFloorRem(testDividend, out var rounded);

            Console.WriteLine($"rounded:{rounded}, remainder:{remainder}");
            Assert.Multiple(() =>
            {
                Assert.AreEqual(testDividend % divisor, remainder, SerializeDivisor(int64Divisor));
                Assert.AreEqual(testDividend / divisor * divisor, rounded, SerializeDivisor(int64Divisor));
            });
        }
Exemple #8
0
        public void DivRemReturnsCorrectly(long divisor, long testDividend)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var remainder    = int64Divisor.DivRem(testDividend, out var quotient);

            Console.WriteLine($"quotient:{quotient}, remainder:{remainder}");
            Assert.Multiple(() =>
            {
                Assert.AreEqual(testDividend % divisor, remainder, SerializeDivisor(int64Divisor));
                Assert.AreEqual(testDividend / divisor, quotient, SerializeDivisor(int64Divisor));
            });
        }
Exemple #9
0
        public void DivRemReturnsCorrectlyRandomNumerators(long divisor)
        {
            var int64Divisor = new Int64Divisor(divisor);
            var rng          = new PcgRandom();

            for (ulong i = 0; i < RandomTestCount; i++)
            {
                var testDividend = unchecked (rng.Next() | ((long)rng.Next() << 32));
                var remainder    = int64Divisor.DivRem(testDividend, out var quotient);
                Assert.AreEqual(testDividend % divisor, remainder, $"Trying to test {testDividend} % {divisor}");
                Assert.AreEqual(testDividend / divisor, quotient, $"Trying to test {testDividend} / {divisor}");
            }
        }
Exemple #10
0
 private static string SerializeDivisor(Int64Divisor divisor) => $"{JsonConvert.SerializeObject(divisor)}";