示例#1
0
 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);
             }
 }
示例#2
0
        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());
            }
        }
示例#3
0
        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());
            }
        }
示例#4
0
 public void RationalFromInvalidString2()
 {
     using (var a = new HugeRational())
     {
         a.SetTo("12345/13345A");
     }
 }
示例#5
0
 public void RationalFromInvalidString2()
 {
     using (var a = new HugeRational())
     {
         a.SetTo("12345/13345A");
     }
 }
示例#6
0
        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));
            }
        }
示例#7
0
 public void RationalAssignFloat()
 {
     using (var a = new HugeFloat("9363833093638312937.25"))
         using (var b = new HugeRational())
         {
             b.SetTo(a);
             Assert.AreEqual("37455332374553251749/4", b.ToString());
         }
 }
示例#8
0
文件: Assignment.cs 项目: wbhart/mpir
 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());
     }
 }
示例#9
0
文件: Assignment.cs 项目: wbhart/mpir
 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());
     }
 }
示例#10
0
文件: Assignment.cs 项目: wbhart/mpir
 public void RationalAssignFloat()
 {
     using (var a = new HugeFloat("9363833093638312937.25"))
     using (var b = new HugeRational())
     {
         b.SetTo(a);
         Assert.AreEqual("37455332374553251749/4", b.ToString());
     }
 }
示例#11
0
 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());
         }
 }
示例#12
0
 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());
         }
 }
示例#13
0
        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));
            }
        }
示例#14
0
        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;
                        }
        }
示例#15
0
        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);
            }
        }
示例#16
0
文件: Assignment.cs 项目: wbhart/mpir
 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 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));
         }
     }
 }
示例#18
0
 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));
         }
     }
 }
示例#19
0
        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));
            }
        }
示例#20
0
        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);
            }
        }
示例#21
0
        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));
            }
        }
示例#22
0
文件: Precision.cs 项目: wbhart/mpir
        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;
            }
        }