int main()
{
  int grade = 0;
  int testVal = 0;
  vector<int> numbers(0);
  testVal = SmallestRecursive(numbers);
  if (testVal == 0) {
    grade += 4;
  }
  else {
    cout << "Case 1 failed!" << endl;
  }

  vector<int> numbers2(1);
  numbers2[0] = 1;
  testVal = SmallestRecursive(numbers2);
  if (testVal == 1) {
    grade += 4;
  }
  else {
    cout << "Case 2 failed!" << endl;
  }

  vector<int> numbers3(2);
  numbers3[0] = 1;
  numbers3[1] = 2;
  testVal = SmallestRecursive(numbers3);
  if (testVal == 1) {
    grade += 6;
  }
  else {
    cout << "Case 3 failed!" << endl;
  }
  
  vector<int> numbers4(2);
  numbers4[0] = 2;
  numbers4[1] = 1;
  testVal = SmallestRecursive(numbers4);
  if (testVal == 1) {
    grade += 6;
  }
  else {
    cout << "Case 4 failed!" << endl;
  }

  vector<int> numbers5(2);
  numbers5[0] = 2;
  numbers5[1] = 2;
  testVal = SmallestRecursive(numbers5);
  if (testVal == 2) {
    grade += 6;
  }
  else {
    cout << "Case 5 failed!" << endl;
  }

  vector<int> numbers6(4);
  bool failed = false;
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
      if (j != i) {
	numbers6[j] = j+10;
      }
    }
    numbers6[i] = 1;

    testVal = SmallestRecursive(numbers6);
    if (testVal != 1) {
      failed = true;
      break;
    }
  }
  
  if (!failed) {
    grade += 8;
  }
  else {
    cout << "Case 6 failed!" << endl;
  }

  vector<int> numbers7(16);
  failed = false;
  for (int i = 0; i < 16; i++) {
    for (int j = 0; j < 16; j++) {
      if (j != i) {
	numbers7[j] = j+10;
      }
    }
    numbers7[i] = 1;

    testVal = SmallestRecursive(numbers7);
    if (testVal != 1) {
      failed = true;
      break;
    }
  }
  
  if (!failed) {
    grade += 6;
  }
  else {
    cout << "Case 7 failed!" << endl;
  }

  
  vector<int> numbers8(5);
  failed = false;
  for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
      if (j != i) {
	numbers8[j] = j+10;
      }
    }
    numbers8[i] = 1;

    testVal = SmallestRecursive(numbers8);
    if (testVal != 1) {
      failed = true;
      break;
    }
  }
  
  if (!failed) {
    grade += 8;
  }
  else {
    cout << "Case 8 failed!" << endl;
  }


  vector<int> numbers9(15);
  failed = false;
  for (int i = 0; i < 15; i++) {
    for (int j = 0; j < 15; j++) {
      if (j != i) {
	numbers9[j] = j+10;
      }
    }
    numbers9[i] = 1;

    testVal = SmallestRecursive(numbers9);
    if (testVal != 1) {
      failed = true;
      break;
    }
  }
  
  if (!failed) {
    grade += 4;
  }
  else {
    cout << "Case 9 failed!" << endl;
  }


  vector<int> numbers10(4);
  numbers10[0] = 1;
  numbers10[1] = 4;
  numbers10[2] = -1;
  numbers10[3] = 5;
  
  testVal = SmallestRecursive(numbers10);
  if (testVal == -1) {
    grade += 3;
  }
  else {
    cout << "Case 10 failed!" << endl;
  }

  
  vector<int> numbers11(6);
  numbers11[0] = 1;
  numbers11[1] = 4;
  numbers11[2] = 4;
  numbers11[3] = 5;
  numbers11[4] = 3;
  numbers11[5] = 6;

  testVal = SmallestRecursive(numbers11);
  if (testVal == 1) {
    grade += 3;
  }
  else {
    cout << "Case 11 failed!" << endl;
  }


  vector<int> numbers12(6);
  numbers12[0] = 1;
  numbers12[1] = 7;
  numbers12[2] = 4;
  numbers12[3] = 5;
  numbers12[4] = 1;
  numbers12[5] = 6;

  testVal = SmallestRecursive(numbers12);
  if (testVal == 1) {
    grade += 3;
  }
  else {
    cout << "Case 12 failed!" << endl;
  }


  vector<int> numbers13(6);
  numbers13[0] = 7;
  numbers13[1] = 7;
  numbers13[2] = 4;
  numbers13[3] = 5;
  numbers13[4] = 6;
  numbers13[5] = 6;

  testVal = SmallestRecursive(numbers13);
  if (testVal == 4) {
    grade += 3;
  }
  else {
    cout << "Case 13 failed!" << endl;
  }


  vector<int> numbers14(6);
  numbers14[0] = 1;
  numbers14[1] = 7;
  numbers14[2] = 5;
  numbers14[3] = 5;
  numbers14[4] = 1;
  numbers14[5] = 6;

  testVal = SmallestRecursive(numbers14);
  if (testVal == 1) {
    grade += 3;
  }
  else {
    cout << "Case 14 failed!" << endl;
  }

  vector<int> numbers15(6);
  numbers15[0] = 1;
  numbers15[1] = 7;
  numbers15[2] = 7;
  numbers15[3] = 7;
  numbers15[4] = 1;
  numbers15[5] = 7;

  testVal = SmallestRecursive(numbers15);
  if (testVal == 1) {
    grade += 3;
  }
  else {
    cout << "Case 15 failed!" << endl;
  }

  cout << "Final Grade: " << grade << "/70" << endl;
}
