public void CorrectlyDivides(uint divisor, uint testDividend) { var uInt32Divisor = new UInt32Divisor(divisor); var quotient = testDividend / uInt32Divisor; Assert.AreEqual(testDividend / divisor, quotient); }
public void CalculatesModulusCorrectly(uint divisor, uint testDividend) { var uInt32Divisor = new UInt32Divisor(divisor); var remainder = testDividend % uInt32Divisor; Assert.AreEqual(testDividend % divisor, remainder); }
public void CalculatesFloorCorrectly(uint divisor, uint testDividend) { var uInt32Divisor = new UInt32Divisor(divisor); var rounded = uInt32Divisor.Floor(testDividend); Assert.AreEqual(testDividend / divisor * divisor, rounded); }
public DelegateDispatchedUInt32Divisor(uint divisor) : this() { Divisor = divisor; var w = new UInt32Divisor(divisor); Multiplier = w.Multiplier; Strategy = w.Strategy; Shift = w.Shift; switch (Strategy) { case UnsignedIntegerDivisorStrategy.Shift: DivideFunc = ShiftOnly; break; case UnsignedIntegerDivisorStrategy.MultiplyShift: DivideFunc = Multiply; break; case UnsignedIntegerDivisorStrategy.MultiplyAddShift: DivideFunc = MultiplyAdd; break; default: DivideFunc = Echo; break; } }
public void Setup() { rng = new PcgRandom(); Console.WriteLine($"Setup with value {ValueToDivideBy}"); divisorBranching = new UInt32Divisor(ValueToDivideBy); divisorOld = new OldDivisor(ValueToDivideBy); }
public void DivRemReturnsCorrectly(uint divisor, uint testDividend) { var uInt32Divisor = new UInt32Divisor(divisor); var remainder = uInt32Divisor.DivRem(testDividend, out var quotient); Assert.Multiple(() => { Assert.AreEqual(testDividend % divisor, remainder); Assert.AreEqual(testDividend / divisor, quotient); }); }
public void CalculatesFloorRemCorrectly(uint divisor, uint testDividend) { var uInt32Divisor = new UInt32Divisor(divisor); var remainder = uInt32Divisor.FloorRem(testDividend, out var rounded); Assert.Multiple(() => { Assert.AreEqual(testDividend % divisor, remainder); Assert.AreEqual(testDividend / divisor * divisor, rounded); }); }
public void CalculatesFloorCorrectlyRandomNumerators(uint divisor) { var uInt32Divisor = new UInt32Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = rng.Next(); var rounded = uInt32Divisor.Floor(testDividend); Assert.AreEqual(testDividend / divisor * divisor, rounded, $"Trying to test {testDividend} / {divisor} * {divisor}"); } }
public void CalculatesModulusCorrectlyRandomNumerators(uint divisor) { var uInt32Divisor = new UInt32Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = rng.Next(); var remainder = testDividend % uInt32Divisor; Assert.AreEqual(testDividend % divisor, remainder, $"Trying to test {testDividend} % {divisor}"); } }
public void CorrectlyDividesRandomNumerators(uint divisor) { var uInt32Divisor = new UInt32Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = rng.Next(); var quotient = testDividend / uInt32Divisor; Assert.AreEqual(testDividend / divisor, quotient, $"Trying to test {testDividend} / {divisor}"); } }
public void DivRemReturnsCorrectlyRandomNumerators(uint divisor) { var uInt32Divisor = new UInt32Divisor(divisor); var rng = new PcgRandom(); for (ulong i = 0; i < RandomTestCount; i++) { var testDividend = rng.Next(); var remainder = uInt32Divisor.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}"); } }
public UInt32Divisor UInt32Divisor() => u32D = new UInt32Divisor(Divisor());