public void CorrectlyDivides(ulong divisor, ulong testDividend) { var uInt64Divisor = new UInt64Divisor(divisor); var quotient = testDividend / uInt64Divisor; Assert.AreEqual(testDividend / divisor, quotient, SerializeDivisor(uInt64Divisor)); }
public void CalculatesModulusCorrectly(ulong divisor, ulong testDividend) { var uInt64Divisor = new UInt64Divisor(divisor); var remainder = testDividend % uInt64Divisor; Assert.AreEqual(testDividend % divisor, remainder, SerializeDivisor(uInt64Divisor)); }
public void CalculatesFloorCorrectly(ulong divisor, ulong testDividend) { var uInt64Divisor = new UInt64Divisor(divisor); var rounded = uInt64Divisor.Floor(testDividend); Assert.AreEqual(testDividend / divisor * divisor, rounded, SerializeDivisor(uInt64Divisor)); }
public void CalculatesFloorRemCorrectly(ulong divisor, ulong testDividend) { var uInt64Divisor = new UInt64Divisor(divisor); var remainder = uInt64Divisor.FloorRem(testDividend, out var rounded); Assert.Multiple(() => { Assert.AreEqual(testDividend % divisor, remainder, SerializeDivisor(uInt64Divisor)); Assert.AreEqual(testDividend / divisor * divisor, rounded, SerializeDivisor(uInt64Divisor)); }); }
public void DivRemReturnsCorrectly(ulong divisor, ulong testDividend) { var uInt64Divisor = new UInt64Divisor(divisor); var remainder = uInt64Divisor.DivRem(testDividend, out var quotient); Assert.Multiple(() => { Assert.AreEqual(testDividend % divisor, remainder, SerializeDivisor(uInt64Divisor)); Assert.AreEqual(testDividend / divisor, quotient, SerializeDivisor(uInt64Divisor)); }); }
public void CalculatesFloorCorrectlyRandomNumerators(ulong divisor) { var uInt64Divisor = new UInt64Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = rng.Next() | ((ulong)rng.Next() << 32); var rounded = uInt64Divisor.Floor(testDividend); Assert.AreEqual(testDividend / divisor * divisor, rounded, $"Trying to test {testDividend} / {SerializeDivisor(uInt64Divisor)} * {SerializeDivisor(uInt64Divisor)}"); } }
public void CalculatesModulusCorrectlyRandomNumerators(ulong divisor) { var uInt64Divisor = new UInt64Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = rng.Next() | ((ulong)rng.Next() << 32); var remainder = testDividend % uInt64Divisor; Assert.AreEqual(testDividend % divisor, remainder, $"Trying to test {testDividend} % {SerializeDivisor(uInt64Divisor)}"); } }
public void CorrectlyDividesRandomNumerators(ulong divisor) { var uInt64Divisor = new UInt64Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = rng.Next() | ((ulong)rng.Next() << 32); var quotient = testDividend / uInt64Divisor; Assert.AreEqual(testDividend / divisor, quotient, $"Trying to test {testDividend} / {SerializeDivisor(uInt64Divisor)}"); } }
public void DivRemReturnsCorrectlyRandomNumerators(ulong divisor) { var uInt64Divisor = new UInt64Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = rng.Next() | ((ulong)rng.Next() << 32); var remainder = uInt64Divisor.DivRem(testDividend, out var quotient); Assert.AreEqual(testDividend % divisor, remainder, $"Trying to test {testDividend} % {SerializeDivisor(uInt64Divisor)}"); Assert.AreEqual(testDividend / divisor, quotient, $"Trying to test {testDividend} / {SerializeDivisor(uInt64Divisor)}"); } }
public void Setup() { rng = new PcgRandom(); Console.WriteLine($"Setup with value {ValueToDivideBy}"); divisorBranching = new UInt64Divisor(ValueToDivideBy); }
private static string SerializeDivisor(UInt64Divisor divisor) => $"{JsonConvert.SerializeObject(divisor)}";
public UInt64Divisor UInt64Divisor() => u64D = new UInt64Divisor(Divisor() | ((ulong)Divisor() << 32));