Exemplo n.º 1
0
        public void Create()
        {
            string AsString;

            using mpf_t a = new mpf_t();
            AsString      = a.ToString();
            Assert.AreEqual("0", AsString);

            Assert.IsTrue(a.IsInteger);
            Assert.IsTrue(a.Sign == 0);

            ulong DefaultPrecision = mpf.get_default_prec();

            Assert.AreEqual(DefaultPrecision, 64UL);
            Assert.AreEqual(a.Precision, DefaultPrecision);

            using mpf_t b = new mpf_t(10U);
            AsString      = b.ToString();
            Assert.AreEqual("1E+1", AsString);

            Assert.AreEqual((uint)b, 10U);

            using mpf_t c = new mpf_t(-10);
            AsString      = c.ToString();
            Assert.AreEqual("-1E+1", AsString);

            Assert.AreEqual((int)c, -10);

            using mpf_t d = new mpf_t(10U, DefaultPrecision);
            AsString      = d.ToString();
            Assert.AreEqual("1E+1", AsString);

            using mpf_t e = new mpf_t(-10, DefaultPrecision);
            AsString      = e.ToString();
            Assert.AreEqual("-1E+1", AsString);

            using mpf_t f = new mpf_t(50.2);
            AsString      = f.ToString();
            Assert.AreEqual("5.02000000000000028422E+1", AsString);

            Assert.AreEqual((double)f, 50.2);

            using mpf_t g = new mpf_t(50.2, DefaultPrecision + 64);
            AsString      = g.ToString();
            Assert.AreEqual("5.02000000000000028421709430404007434845E+1", AsString);

            Assert.AreEqual(g.Precision, DefaultPrecision + 64);

            using mpf_t h = new mpf_t("2225098325034502983450298.3574029384572");
            AsString      = h.ToString();
            Assert.AreEqual("2.22509832503450298345E+24", AsString);

            using mpf_t i = new mpf_t("2225098325034502983450298.3574029384572", 10, 200);
            AsString      = i.ToString();
            Assert.AreEqual("2.2250983250345029834502983574029384572E+24", AsString);

            using mpf_t j = new mpf_t(i);
            AsString      = j.ToString();
            Assert.AreEqual("2.2250983250345029834502983574029384572E+24", AsString);

            using mpf_t k = new mpf_t(i, true);
            AsString      = k.ToString();
            Assert.AreEqual("2.22509832503450298345E+24", AsString);

            using mpf_t l = -k;
            AsString      = l.ToString();
            Assert.AreEqual("-2.22509832503450298345E+24", AsString);

            using mpf_t m = l.Abs();
            AsString      = m.ToString();
            Assert.AreEqual("2.22509832503450298345E+24", AsString);

            using mpf_t p = new mpf_t("68719476735");
            AsString      = p.ToString();
            Assert.AreEqual("6.8719476735E+10", AsString);
            ulong UlongCast = (ulong)p;

            Assert.AreEqual(UlongCast, 68719476735UL);

            using mpf_t q = new mpf_t("2147483647");
            AsString      = q.ToString();
            Assert.AreEqual("2.147483647E+9", AsString);
            uint UintCast = (uint)q;

            Assert.AreEqual(UintCast, 2147483647U);
        }