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); }
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)); }
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; }