public void TestMin() { BigInteger bi1, bi2; int val1, val2; Random rand = new Random(); for (int i = 0; i < 100; i++) { val1 = rand.Next(); val2 = rand.Next(); bi1 = new BigInteger(val1); bi2 = new BigInteger(val2); Assert.AreEqual(Math.Min(val1, val2), bi1.min(bi2)); Assert.AreEqual(bi1.min(bi2), bi2.min(bi1)); Assert.AreEqual(bi1, bi1.min(bi1)); } bi1 = new BigInteger("49823798573298479823749823798472398479238479823749823749823794837298472398469238649836294862398462398649823649823649823649823694", 10); bi2 = new BigInteger("-37209847385984792370497230948093284092384092380958058094809238409328049238094237094723094723984792384792387492379487239847239847923847923879847923847239847", 10); Assert.AreEqual(bi2, bi1.min(bi2)); Assert.AreEqual(bi2, bi2.min(bi1)); bi2 = new BigInteger(); Assert.AreEqual(bi2, bi1.min(bi2)); bi2 = new BigInteger("38274939234793749237498237492374982379872394798237", 10); Assert.AreEqual(bi2, bi2.min(bi1)); bi2 = new BigInteger("49823798573298479823749823798472408479238479823749823749823794837298472398469238649836294862398462398649823649823649823649823694", 10); Assert.AreEqual(bi1, bi1.min(bi2)); bi1 = new BigInteger("-9852375989470234802398402398409238049238094723094709234702387498237498623948623984623984623864237642376482376492386479238749823749237498237498237", 10); Assert.AreEqual(bi1, bi1.min(0)); bi2 = new BigInteger("287498237498623846236236826386276327638276327632763276382763872688947329847923847982374982379482379847239847392847982374982374982374982374982374982379482379482379487239847239847", 10); Assert.AreEqual(bi1, bi2.min(bi1)); bi2 = new BigInteger("-8979479943434898397", 10); Assert.AreEqual(bi1, bi1.min(bi2)); bi2 = new BigInteger("-9852375989470234802399402398409238049238094723094709234702387498237498623948623984623984623864237642376482376492386479238749823749237498237498237", 10); Assert.AreEqual(bi2, bi2.min(bi1)); }
string B62(string sVar) { char[] v = ("0123456789" + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ") .ToCharArray(); BigInteger bi = new BigInteger(sVar, 16); BigInteger mod = new BigInteger(62); string sRet = ""; while (bi.min(1).ToString() == "1") { int r = (bi % 62).IntValue(); sRet = v[r] + sRet; bi = bi / 62; } return(sRet); }