private static void generateTestCases(){
		firstNumbers = new ArrayList<int[]>();
		secondNumbers = new ArrayList<int[]>();
		bases = new ArrayList<Integer>();
		
		// you can change the bases here
		int [] basesArray = {2,10,17};
		
		int [] firstNum;
		int [] secondNum;
		int [] zero = {0};
		Random rand = new Random();
		for (int i =0 ; i< basesArray.length ; i++){

			// number of digits of first and second
            // Make them really big (bigger than can be represented with type "long")
			
			int  firstLength = 50;
			int  secondLength = 40;

			firstNum = new int[firstLength];
			secondNum = new int[secondLength];
			
			//  TEST 
			// use the biggest possible numbers for the given lengths i.e. 999999999...999 in base 10			

			for(int j = 0 ; j<firstLength ; j++){
				firstNum[j]=basesArray[i]-1;
			}
			for(int j = 0 ; j<secondLength ; j++){
				secondNum[j]=basesArray[i]-1;
			}
			firstNumbers.add(firstNum);
			secondNumbers.add(secondNum);
			bases.add(basesArray[i]);

			//  TEST 
			// use firstNum (9999999...99999 in base 10) for both first number and second number 

			firstNumbers.add(firstNum);
			secondNumbers.add(firstNum);
			bases.add(basesArray[i]);	
			
			//  TEST 			
			// use the smallest possible numbers for the given lengths i.e.  1000000...00000			

			for(int j = 1 ; j<50 ; j++){
				firstNum[j]=0;
			}
			for(int j = 1 ; j<40 ; j++){
				secondNum[j]=0;
			}
			firstNum[0]= 1;
			secondNum[0]=1;
			firstNumbers.add(firstNum);
			secondNumbers.add(secondNum);
			bases.add(basesArray[i]);	
			
			//  TEST 
			// make two random numbers
			
			for(int j = 1 ; j<50 ; j++){
				firstNum[j]=Math.abs(rand.nextInt()%basesArray[i]);
			}
			for(int j = 1 ; j<40 ; j++){
				secondNum[j]=Math.abs(rand.nextInt()%basesArray[i]);
			}
			
			firstNumbers.add(firstNum);
			secondNumbers.add(secondNum);
			bases.add(basesArray[i]);			
			
			//   Use the (random) firstNum for both numbers.
			
			firstNumbers.add(firstNum);
			secondNumbers.add(firstNum);
			bases.add(basesArray[i]);
			
			//   One random number and zero
			
			firstNumbers.add(firstNum);
			secondNumbers.add(zero);
			bases.add(basesArray[i]);			

			//   both numbers are zero

			firstNumbers.add(zero);
			secondNumbers.add(zero);
			bases.add(basesArray[i]);			
		}
	}