public void InfiniteNumberTest1() { //Ulong Maxvalue = 18446744073709551615 InfiniteNumber n1 = new InfiniteNumber(1234567890); Assert.AreEqual(n1.ToString(), "1234567890"); }
public void TestMethod100base3ToBase10() { InfiniteNumber n1 = new InfiniteNumber("10".Select(c => c.ToString()).ToArray(), 3); var n3 = n1.ToBase10(); Assert.AreEqual(n3.ToString(), "3"); }
public static InfiniteNumber operator *(InfiniteNumber a, InfiniteNumber b) { if (b == null) { throw new Exception("number is null"); } //if (b.Base != a.Base) // b = b.ToBase10(a.Base); if (a.IntArrayValue.Length == 1 && a.IntArrayValue[0] == 0 || b.IntArrayValue.Length == 1 && b.IntArrayValue[0] == 0) { return(new InfiniteNumber(new string[] { "0" }, a.Base)); } var result = new InfiniteNumber(new string[] { "0" }, a.Base); var number1 = new InfiniteNumber(new string[] { "1" }, a.Base); for (; !(b.IntArrayValue.Length == 1 && b.IntArrayValue[0] == 0); b = b - number1) { result = result + a; } return(result); }
public static void Main2(string[] args) { try { using (StreamWriter writer = new StreamWriter("out25.txt")) { writer.WriteLine("\"0\""); for (int i = 3; i <= 26; i++) { var numberCrecient = new int[i].Select((v, index) => index).Reverse(); InfiniteNumber maxValue = new InfiniteNumber(numberCrecient.ToArray(), i); var numberDecrecient = numberCrecient.Reverse().ToArray(); numberDecrecient[0] = 1; numberDecrecient[1] = 0; InfiniteNumber minValue = new InfiniteNumber(numberDecrecient, i); var difference = (maxValue - minValue).ToBase10(); writer.WriteLine(", \"" + difference.ToString() + "\""); } } } catch (Exception exception) { Console.WriteLine(exception); } }
public void TestMethod1234567890prod1_Base10() { InfiniteNumber n1 = new InfiniteNumber("1234567890".Select(c => c.ToString()).ToArray(), 10); InfiniteNumber n2 = new InfiniteNumber("1".Select(c => c.ToString()).ToArray(), 10); var n3 = n1 * n2; Assert.AreEqual(n3.ToString(), "1234567890"); }
public void TestMethod987diff90_Base10() { InfiniteNumber n1 = new InfiniteNumber("987".Select(c => c.ToString()).ToArray(), 10); InfiniteNumber n2 = new InfiniteNumber("90".Select(c => c.ToString()).ToArray(), 10); var n3 = n1 - n2; Assert.AreEqual(n3.ToString(), (897).ToString()); }
public void TestMethod1Jplus1_Base20() { InfiniteNumber n1 = new InfiniteNumber("1J".Select(c => c.ToString()).ToArray(), 20); InfiniteNumber n2 = new InfiniteNumber("1".Select(c => c.ToString()).ToArray(), 20); var n3 = n1 + n2; Assert.AreEqual(n3.ToString(), (20).ToString()); }
public void TestMethod9999plus1_Base10() { InfiniteNumber n1 = new InfiniteNumber("9999".Select(c => c.ToString()).ToArray(), 10); InfiniteNumber n2 = new InfiniteNumber("1".Select(c => c.ToString()).ToArray(), 10); var n3 = n1 + n2; Assert.AreEqual(n3.ToString(), (9999 + 1).ToString()); }
public void TestMethod10234plus42310_Base10() { InfiniteNumber n1 = new InfiniteNumber("10234".Select(c => c.ToString()).ToArray(), 10); InfiniteNumber n2 = new InfiniteNumber("42310".Select(c => c.ToString()).ToArray(), 10); var n3 = n1 + n2; Assert.AreEqual(n3.ToString(), (10234 + 42310).ToString()); }
public void TestMethod10000diff10000_Base20() { InfiniteNumber n1 = new InfiniteNumber("10000".Select(c => c.ToString()).ToArray(), 20); InfiniteNumber n2 = new InfiniteNumber("10000".Select(c => c.ToString()).ToArray(), 20); var n3 = n1 - n2; Assert.AreEqual(n3.ToString(), "0"); }
public void InfiniteNumberTest6() { InfiniteNumber n1 = new InfiniteNumber(); n1.O_Add(9); Assert.AreEqual(n1.ToString(), "9"); }
public void TestMethod10pow40prod0_Base10() { InfiniteNumber n1 = new InfiniteNumber("1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000".Select(c => c.ToString()).ToArray(), 10); InfiniteNumber n2 = new InfiniteNumber("0".Select(c => c.ToString()).ToArray(), 10); var n3 = n1 * n2; Assert.AreEqual(n3.ToString(), "0"); }
public void TestMethodManybasesToBase10() { for (int baseN = 2; baseN < 27; baseN++) { InfiniteNumber n1 = new InfiniteNumber("10".Select(c => c.ToString()).ToArray(), baseN); var n3 = n1.ToBase10(); Assert.AreEqual(n3.ToString(), baseN.ToString()); } }
public void InfiniteNumberTest2() { //Ulong Maxvalue = 18446744073709551615 // 1000000000000000000 // 999999999999999999 InfiniteNumber n1 = new InfiniteNumber(); n1.O_Add(999999999999999999); Assert.AreEqual(n1.ToString(), "999999999999999999"); }
public void InfiniteNumberTest4() { //Ulong Maxvalue = 18446744073709551615 // 1000000000000000000 // 999999999999999999 InfiniteNumber n1 = new InfiniteNumber(); n1.O_Add(999999999999999999); n1.O_Add(1); Console.WriteLine(n1); Assert.AreEqual(n1.ToString(), "1000000000000000000"); }
public override void OnGUI(Rect rect, SerializedProperty property, GUIContent label) { // get serialized property SerializedProperty valueStringProp = property.FindPropertyRelative("serializedValue"); // get tooltip string tooltipText = null; TooltipAttribute tooltip = GetTooltip(fieldInfo, true); if (tooltip != null) { tooltipText = tooltip.tooltip; } // cache rect width float rectWidth = rect.width; // show label as int field for scroll capabilities rect.width = EditorGUIUtility.labelWidth + 2; EditorGUI.BeginChangeCheck(); long scrollVal = EditorGUI.LongField(rect, new GUIContent(property.displayName, tooltipText), 0); if (EditorGUI.EndChangeCheck()) { InfiniteNumber nb = new InfiniteNumber(valueStringProp.stringValue); nb += scrollVal; valueStringProp.stringValue = nb.ToString(); } rect.x += rect.width; rect.width = rectWidth - rect.width; // show text area EditorGUI.BeginProperty(rect, label, property); { EditorGUI.BeginChangeCheck(); string newVal = EditorGUI.DelayedTextField(rect, new GUIContent(""), InfiniteNumber.FormatString(valueStringProp.stringValue), EditorStyles.numberField); if (EditorGUI.EndChangeCheck()) { valueStringProp.stringValue = newVal; } } EditorGUI.EndProperty(); }
public InfiniteNumber ToBase10() { if (Base == 10) { return(this); } int length = this.IntArrayValue.Length; if (length == 1) { return(new InfiniteNumber(IntArrayValue[0].ToString().Select(c => c.ToString()).ToArray(), 10)); } else { var firstDigitNumber = new InfiniteNumber(IntArrayValue[IntArrayValue.Length - 1].ToString().Select(c => c.ToString()).ToArray(), 10); var restProd1 = new InfiniteNumber(StringArrayValue.Take(IntArrayValue.Length - 1).ToArray(), Base).ToBase10(); var restNumber = restProd1 * new InfiniteNumber(Base.ToString().Select(c => c.ToString()).ToArray(), 10); return(firstDigitNumber + restNumber); } }