JSFiddle - React, Tailwind, and code Playground

by William Sena

JavaScript

function getGradeAverage(firstGrade, secondGrade, thirdyGrade) {
  var avg = (firstGrade + (secondGrade * 2) + (thirdyGrade * 3)) / 6;
  var grade;

  if (firstGrade < 0 || secondGrade < 0 || thirdyGrade < 0) {
    throw new Error("There are invalid grandes!");
  }

  if (avg >= 9) {
    grade = "A";
  } else if (avg >= 7.5 && avg < 9) {
    grade = "B"
  } else if (avg >= 6 && avg < 7.5) {
    grade = "C"
  } else if (avg >= 4 && avg < 6) {
    grade = "D"
  } else {
    grade = "E"
  }

  return {
    grade: grade,
    avg: avg
  };
}

var unitTest = [
  [9, 9, 10],
  [8, 8, 7],
  [7.9, 5.9, 7],
  [5.9, 5.9, 6],
  [5, 4, 3],
  [-1, 1, 1],
  [1, -1, 1],
  [1, 1, -1]
]

unitTest.forEach(function(test) {
  var result;
  
  try {
    result = getGradeAverage(test[0], test[1], test[2]);
    document.body.innerHTML += JSON.stringify(result) + '<br /> ';
  } catch (e) {
		document.body.innerHTML += JSON.stringify(e.message)  + '<br /> ';
  }
})