public void RationalAssignInt2() { using (var a = new HugeInt("222509832503450298345029835740293845719")) using (var d = new HugeInt("115756986668303657898962467957")) using (var b = new HugeRational("1/3")) { b.SetTo(a, d); Assert.AreEqual("222509832503450298345029835740293845719/115756986668303657898962467957", b.ToString()); b.SetTo(b.Numerator - b.Denominator, b.Denominator * 5); Assert.AreEqual(a - d, b.Numerator); Assert.AreEqual(d * 5, b.Denominator); } }
public void RationalFromLong() { using (var a = new HugeRational()) { var b = Platform.Si(-0x784739ABCDEF4876, -0xF84776); var d = Platform.Ui(12764787846358441471, 3628273133); a.SetTo(b, d); Assert.AreEqual(b.ToString() + "/" + d.ToString(), a.ToString()); a.SetTo(b); Assert.AreEqual(b.ToString() + "/1", a.ToString()); } }
public void RationalFromInvalidString2() { using (var a = new HugeRational()) { a.SetTo("12345/13345A"); } }
public void RationalFromString() { using (var a = new HugeRational()) { var n = "98762934876529834765234123984761/115756986668303657898962467957"; a.SetTo(n); Assert.AreEqual(n, a.ToString()); n = "-98ABCDEF876529834765234123984761/17607EF654EB9A13FFA163C75"; a.SetTo(n, 16); Assert.AreEqual(n, a.ToString(16)); n = "-98ABCDEF876529834765234123984761"; a.SetTo(n, 16); Assert.AreEqual(n + "/1", a.ToString(16)); } }
public void RationalAssignFloat() { using (var a = new HugeFloat("9363833093638312937.25")) using (var b = new HugeRational()) { b.SetTo(a); Assert.AreEqual("37455332374553251749/4", b.ToString()); } }
public void RationalAssignInt() { using (var a = new HugeInt("222509832503450298345029835740293845720")) using (var b = new HugeRational("1/3")) { b.SetTo(a); Assert.AreEqual("222509832503450298345029835740293845720/1", b.ToString()); } }
public void RationalAssignFloat2() { using(var a = new HugeFloat("222509832503450298342455029.125")) using(var b = new HugeRational("1/3")) { b.SetTo(a); Assert.AreEqual("1780078660027602386739640233/8", b.ToString()); } }
public void RationalAssignFloat2() { using (var a = new HugeFloat("222509832503450298342455029.125")) using (var b = new HugeRational("1/3")) { b.SetTo(a); Assert.AreEqual("1780078660027602386739640233/8", b.ToString()); } }
public void RationalToAndFromDouble() { using (var a = new HugeRational()) { a.SetTo(-123.25); double c = a.ToDouble(); Assert.IsTrue(c.Equals(-123.25)); Assert.IsTrue(a.Equals(-123.25)); } }
public void HugeRationalSetToPerformedToDefaultPrecision() { using (var a = new HugeFloat(14)) using (var b = new HugeFloat(13)) using (var c = new HugeFloat("1234523458923405982347445029384572323")) using (var d = new HugeRational()) { ShiftLeftBy62(c); ShiftLeftBy62(c); var expr = a / b + c - c; d.SetTo(expr); Assert.IsTrue(d == 0); HugeFloat.DefaultPrecision = 256; d.SetTo(expr); Assert.IsTrue(d > 1); Assert.IsTrue(d < 2); HugeFloat.DefaultPrecision = 128; } }
public void RationalToAndFromFloat() { using (var a = new HugeRational()) { a.SetTo(-123.125f); double c = a.ToDouble(); Assert.IsTrue(-123.125 == c); Assert.IsTrue(-123.125 == a); Assert.IsTrue(-123.125f == a); } }
public void RationalStringAssignmentHexPrefix() { using (var i = new HugeInt("362736035870515331128527330659")) { var d = i.ToString(16); var n = "143210ABCDEF32123457ACDB324598799"; using (var a = new HugeRational("0x" + n + "/0x" + d)) { Assert.AreEqual(n + "/" + d, a.ToString(16)); Assert.AreEqual(n + "/" + d, a.ToString(16, false)); Assert.AreEqual((n + "/" + d).ToLower(), a.ToString(16, true)); a.SetTo("-0x" + n + "/0x17"); Assert.AreEqual("-" + n + "/17", a.ToString(16)); } } }