Beispiel #1
0
        static void Main(string[] args)
        {
            // a lot of tests below
            BigNum test = new BigNum((double)-0.654493524, false);

            Console.Out.WriteLine(test);
            BigNum test1 = new BigNum((double)-0.654493524, true);

            Console.Out.WriteLine(test1);
            BigNum test2 = new BigNum("-5840.568");

            Console.Out.WriteLine(test2);
            BigNum test3 = new BigNum((double)-4.54896185, true);

            Console.Out.WriteLine(test3);
            BigNum test4 = new BigNum((double)-4.54896185, false);

            Console.Out.WriteLine(test4);
            test4 = new BigNum((double)-4.25, true);
            Console.Out.WriteLine(test4);
            test4 = new BigNum((double)-4.25, false);
            Console.Out.WriteLine(test4);
            test4 = new BigNum(test4.ToString());
            Console.Out.WriteLine(test4);
            test3 = new BigNum(test3.ToString());
            Console.Out.WriteLine(test3);
            test4 = new BigNum("0");
            Console.Out.WriteLine(test4);
            test4 = new BigNum("0.0");
            Console.Out.WriteLine(test4);
            Console.Out.WriteLine(test3 - test);
            Console.Out.WriteLine(test2 - test1);
            Console.Out.WriteLine(test1 + test2);
            Console.Out.WriteLine(test + test3);
            Console.Out.WriteLine(test > test3);
            Console.Out.WriteLine(test + test3 <= test2);
            Console.Out.WriteLine(test + test3 != test1);
            Console.Out.WriteLine(test - test3 < test4);
            Console.Out.WriteLine("Marker1.................");
            Console.Out.WriteLine(test - test3 * test4);
            Console.Out.WriteLine(test2 - test3 / test4);
            test4 = new BigNum("0.0");
            test3 = new BigNum("0.");
            test2 = new BigNum("0");
            test1 = new BigNum("0.00");
            Console.Out.WriteLine(test2 - test3 / test4);
            Console.Out.WriteLine(test1 == test1);
            Console.Out.WriteLine(test1 == test2);
            Console.Out.WriteLine(test1 == test3);
            Console.Out.WriteLine(test1 == test4);
            Console.Out.WriteLine(test2 == test3);
            Console.Out.WriteLine(test3 == test4);
            Console.Out.WriteLine(test2 == test4);
            test1 = new BigNum(0.5, false);
            test2 = new BigNum(-5.0, false);
            test3 = new BigNum(-0.03, false);
            Console.Out.WriteLine("Marker2.................");
            Console.Out.WriteLine(test4 / test3);
            Console.Out.WriteLine(test3 / test2);
            Console.Out.WriteLine(test3 / test1);
            Console.Out.WriteLine(test2 / test1);
            Console.Out.WriteLine(test2 / test2);
            Console.Out.WriteLine(test1 / test2);

            Console.Out.WriteLine("Marker3.................");
            Console.Out.WriteLine(double.MaxValue);
            Console.Out.WriteLine(double.MinValue);
            test4 = new BigNum(double.MaxValue.ToString());
            Console.Out.WriteLine(test4);
            test4 = new BigNum(double.MinValue.ToString());
            Console.Out.WriteLine(test4);
            Console.Out.WriteLine(test4.ToString().Length);
            Console.Out.WriteLine(BigNum.IsToStringCorrect(5));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(-5.0));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(-0.5));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(-0.25));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(0.15));

            Console.Out.WriteLine("Marker4.................");
            Console.Out.WriteLine(BigNum.IsToStringCorrect(double.MinValue));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(double.MaxValue));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(5));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(6.75));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(-1.25));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(-1.25e-3));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(-2.5e-1));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(-1.56e-5));
            Console.Out.WriteLine(BigNum.IsToStringCorrect(97.56e-89));

            Console.Out.WriteLine("Marker5.................");
            test4 = new BigNum(double.MinValue.ToString());
            Console.Out.WriteLine(test4);
            Console.Out.WriteLine(test4.ToString().Length);
            test4 = new BigNum(test4.ToString());
            Console.Out.WriteLine(test4);
            Console.Out.WriteLine(test4.ToString().Length);

            Console.Out.WriteLine("Marker5.................");
            double aaa = 1e-100;

            Console.Out.WriteLine(aaa);
            test4 = new BigNum(aaa, false);
            Console.Out.WriteLine(test4);


            aaa = 1e-321;
            Console.Out.WriteLine(aaa);
            test4 = new BigNum(aaa, false);
            Console.Out.WriteLine(test4);

            aaa = 1e-323;
            Console.Out.WriteLine(aaa);
            test4 = new BigNum(aaa, false);
            Console.Out.WriteLine(test4);

            aaa = 1e-324;
            Console.Out.WriteLine(aaa);
            test4 = new BigNum(aaa, false);
            Console.Out.WriteLine(test4);
        }
Beispiel #2
0
        public void TestCase()
        {
            BigNum myNum    = new BigNum("0000.00000124");
            string mystring = myNum.ToString();

            myNum = new BigNum(Math.Pow(2, 52).ToString());
            string s = myNum.ToString();

            Assert.AreEqual(".00000124", mystring);

            myNum = new BigNum(45.3265, true);
            Assert.AreEqual("45.3265", myNum.ToString());

            myNum    = new BigNum("-45.25600000");
            mystring = myNum.ToString();
            Assert.AreEqual("-45.256", mystring);


            myNum    = new BigNum("17825.23569874");
            mystring = myNum.ToString();
            Assert.AreEqual("17825.23569874", mystring);


            BigNum newNum = new BigNum("256.2314");
            var    b      = myNum * newNum;

            mystring = b.ToString();

            b        = myNum / newNum;
            mystring = b.ToString();

            b        = myNum + newNum;
            mystring = b.ToString();

            b        = myNum - newNum;
            mystring = b.ToString();

            BigNum numOne = new BigNum("5");
            BigNum numTwo = new BigNum("10");

            string numOneString = numOne.ToString();

            Assert.AreEqual("5", numOneString);

            String numTwoString = numTwo.ToString();

            Assert.AreEqual("10", numTwoString);

            Assert.AreEqual("15", (numOne + numTwo).ToString());
            Assert.AreEqual("50", (numOne * numTwo).ToString());
            Assert.AreEqual("2", (numTwo / numOne).ToString());


            BigNum zero = new BigNum("0000000");

            Assert.IsTrue((myNum / zero).IsUndefined);

            BigNum a = new BigNum("5.2");
            BigNum c = new BigNum("5.2");

            bool compare = a > c;

            Assert.IsFalse(compare);

            compare = a >= c;
            Assert.IsTrue(compare);

            compare = a < c;
            Assert.IsFalse(compare);

            compare = a <= c;
            Assert.IsTrue(compare);


            c = new BigNum("-5.2");

            compare = a > c;
            Assert.IsTrue(compare);

            compare = a >= c;
            Assert.IsTrue(compare);

            compare = a < c;
            Assert.IsFalse(compare);

            compare = a <= c;
            Assert.IsFalse(compare);


            BigNum fromDouble  = new BigNum(45.24587, false);
            string doubeString = fromDouble.ToString();

            Assert.AreEqual(doubeString, "45.245869999999996480255504138767719268798828125");

            bool isSame = BigNum.IsToStringCorrect(45.24587);

            Assert.IsFalse(isSame);

            Assert.IsTrue(BigNum.IsToStringCorrect(4.5));
        }
Beispiel #3
0
        static void Main()
        {
            //var num = "127.6948";
            //var blah = new BigNum(num);

            //var value = 127.6948;
            //var foo = new BigNum(value, false);

            //var one = "10.894";
            //var two = "4.6828";
            //var bone = new BigNum(one);
            //var btwo = new BigNum(two);
            //BigNum added = bone + btwo;
            //BigNum divided = bone / btwo;

            BigNum myBigNum = new BigNum("3.1415");
            BigNum bn       = new BigNum("3.004837");
            BigNum quotent  = myBigNum / bn;

            BigNum num1     = new BigNum("1.254353");
            BigNum num2     = new BigNum(".0532112");
            BigNum quotient = num1 / num2;
            //var ne = ".00000278";
            //var wo = ".00011";
            //var bne = new BigNum(ne);
            //var bwo = new BigNum(wo);
            //BigNum dded = bne - bwo;
            //BigNum dd = bne + bwo;

            //var n = "3.14";
            //var w = "3.145";
            //var bn = new BigNum(n);
            //var bw = new BigNum(w);
            //BigNum dde = bn - bw;

            //BigNum p = bn + bw;

            ////var maxx = long.MaxValue;
            ////var maxxx = "9223372036854775806.5";
            ////var bmaxx = new BigNum(maxx.ToString());
            ////var bmaxxx = new BigNum(maxxx);
            ////BigNum b = bmaxx + bmaxxx;

            //bool h = dde <= dd;

            //string s = dded.ToString();
            //Regex criteria = new Regex(@"^-?\d*.?\d*$");
            //if (!criteria.IsMatch(s) || string.IsNullOrWhiteSpace(s))
            //{
            //    throw new ArgumentException();
            //}
            //s = added.ToString();
            //if (!criteria.IsMatch(s) || string.IsNullOrWhiteSpace(s))
            //{
            //    throw new ArgumentException();
            //}
            var foo = new BigNum(5, false);
            var t   = foo.ToString();
            var c   = BigNum.IsToStringCorrect(.6899999);

            var    q = new BigNum(double.MaxValue, false);
            var    w = new BigNum(double.MaxValue, false);
            string r = q.ToString();
            var    e = q + w;
        }