using System.Collections.Generic;
public static void Main()
Console.WriteLine("Running tests...");
TestClass testRunner = new TestClass();
var sillyPrime = GetNextPrime();
Console.WriteLine("Running primes");
public static BigNumber GetNextPrime() {
public List<int> numbers;
public BigNumber(BigNumber clone) {
numbers = clone.numbers.ToList();
public BigNumber Add(BigNumber addend) {
BigNumber result = new BigNumber(addend);
for (int i = 0; i < result.numbers.Count(); i++) {
public override bool Equals(object obj) {
BigNumber cast = (BigNumber)obj;
if (cast.numbers.Count() != this.numbers.Count()) {
for (int i = 0; i < this.numbers.Count(); i++){
if (this.numbers[i] != cast.numbers[i]) {
Console.WriteLine("Running Object equalityTest");
Console.WriteLine("Running Object property test");
Console.WriteLine("Running Alt Constructor test");
Console.WriteLine("Running Little add test");
public void RunObjectEqualityTest(){
BigNumber num1 = new BigNumber() { numbers = new List<int>() { 1 }};
BigNumber num2 = new BigNumber() { numbers = new List<int>() { 1, 2 }};
Assert.AreNotEqual(num1, num2);
BigNumber num3 = new BigNumber() { numbers = new List<int>() { 2, 3 }};
BigNumber num4 = new BigNumber() { numbers = new List<int>() { 2, 3 }};
Assert.AreEqual(num3, num4);
Console.WriteLine("\t Test Failed");
Console.WriteLine("\t Test Passed");
public void RunObjectPropertyTest() {
BigNumber num1 = new BigNumber() { numbers = new List<int> { 1 }};
Assert.AreEqual(1, num1.numbers[0]);
Console.WriteLine("\t Test Failed");
Console.WriteLine("\t Test Passed");
public void RunAltConstructorTest(){
BigNumber num1 = new BigNumber() { numbers = new List<int> { 3, 4 }};
BigNumber num2 = new BigNumber(num1);
Assert.AreEqual(num1, num2);
Console.WriteLine("\t Test Failed");
Console.WriteLine("\t Test Passed");
public void RunLittleAddTest(){
BigNumber num1 = new BigNumber() { numbers = new List<int>{ 1 }};
BigNumber num2 = new BigNumber() { numbers = new List<int>{ 2 }};
Assert.AreEqual(3, num1.numbers[0]);
failedMessage = e.Message;
Console.WriteLine("\t Test Failed: " + failedMessage);
public static class Assert {
public static bool AreEqual (object expected, object actual) {
if (expected.Equals(actual)) {
throw new AssertFailException(expected, actual);
public static bool AreNotEqual (object expected, object actual) {
if (!expected.Equals(actual)) {
throw new AssertFailException(expected, actual);
public class AssertFailException : Exception {
public AssertFailException(object expected, object actual) : base("Expexted '" + expected.ToString() + "' but was '" + actual.ToString() + "'"){