public void RationalStringConstructorNumeratorOnly() { var n = "5432109876543212345789023245987"; using (var a = new HugeRational(n)) { Assert.AreEqual(128 / MpirSettings.BITS_PER_LIMB, a.NumeratorNumberOfLimbsUsed()); Assert.AreEqual(n + "/1", a.ToString()); } }
public void RationalStringConstructor() { var n = "5432109876543212345789023245987/362736035870515331128527330659"; using (var a = new HugeRational(n)) { Assert.AreEqual(128 / MpirSettings.BITS_PER_LIMB, a.NumeratorNumberOfLimbsUsed()); Assert.AreEqual(n, a.ToString()); } }
public void RationalConstructorFromLongNegative() { var n = Platform.Si(-123456789123456, -1234567891); var d = Platform.Ui(12764787846358441471U, 2860486313U); using (var a = new HugeRational(n, d)) { Assert.AreEqual(1, a.NumeratorNumberOfLimbsAllocated()); Assert.AreEqual(-1, a.NumeratorNumberOfLimbsUsed()); Assert.AreEqual(1, a.DenominatorNumberOfLimbsAllocated()); Assert.AreEqual(1, a.DenominatorNumberOfLimbsUsed()); Assert.AreEqual(n + "/" + d, a.ToString()); } }
public void RationalDispose() { var a = new HugeRational(); a.Dispose(); Assert.AreEqual(0, a.NumeratorNumberOfLimbsAllocated()); Assert.AreEqual(0, a.NumeratorNumberOfLimbsUsed()); Assert.AreEqual(IntPtr.Zero, a.NumeratorLimbs()); Assert.AreEqual(0, a.DenominatorNumberOfLimbsAllocated()); Assert.AreEqual(0, a.DenominatorNumberOfLimbsUsed()); Assert.AreEqual(IntPtr.Zero, a.DenominatorLimbs()); }
public void RationalStringConstructorHex() { using (var i = new HugeInt("362736035870515331128527330659")) { var d = i.ToString(16); var n = "143210ABCDEF32123457ACDB324598799"; using (var a = new HugeRational(n + "/" + d, 16)) { Assert.AreEqual(n, a.Numerator.ToString(16)); Assert.AreEqual(1 + 128 / MpirSettings.BITS_PER_LIMB, a.NumeratorNumberOfLimbsUsed()); Assert.AreEqual(i, a.Denominator); } } }
public void RationalDefaultConstructor() { using (var a = new HugeRational()) { Assert.AreNotEqual(0, a.NumeratorNumberOfLimbsAllocated()); Assert.AreEqual(0, a.NumeratorNumberOfLimbsUsed()); Assert.AreNotEqual(IntPtr.Zero, a.NumeratorLimbs()); Assert.AreEqual("0", a.Numerator.ToString()); Assert.AreNotEqual(0, a.DenominatorNumberOfLimbsAllocated()); Assert.AreEqual(1, a.DenominatorNumberOfLimbsUsed()); Assert.AreNotEqual(IntPtr.Zero, a.DenominatorLimbs()); Assert.AreEqual("1", a.Denominator.ToString()); } }
public void RationalConstructorFromULong() { var n = Platform.Ui(ulong.MaxValue, uint.MaxValue); var d = Platform.Ui(12764787846358441471U, 2860486313U); using (var a = new HugeRational(n, d)) { Assert.AreEqual(1, a.NumeratorNumberOfLimbsAllocated()); Assert.AreEqual(1, a.NumeratorNumberOfLimbsUsed()); Assert.AreEqual(1, a.DenominatorNumberOfLimbsAllocated()); Assert.AreEqual(1, a.DenominatorNumberOfLimbsUsed()); Assert.AreEqual(n.ToString(), a.Numerator.ToString()); Assert.AreEqual(n.ToString() + "/" + d, a.ToString()); } }
public void RationalStringConstructorNumeratorOnly() { var n = "5432109876543212345789023245987"; using(var a = new HugeRational(n)) { Assert.AreEqual(128 / MpirSettings.BITS_PER_LIMB, a.NumeratorNumberOfLimbsUsed()); Assert.AreEqual(n + "/1", a.ToString()); } }