<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def bestScore(expPath, suite):
 """ Given a single experiment, return the test, validation and other scores from the iteration with maximum validation accuracy. """

  maxValidationAccuracy = -1.0
  maxTestAccuracy = -1.0
  maxTotalAccuracy = -1.0
  maxBGAccuracy = -1.0
  maxIter = -1
  try:
    headers=["testResults", "validation", "bgResults", "elapsedTime", "totalCorrect"]
    result = suite.get_value(expPath, 0, headers, "all")
    for i,v in enumerate(zip(result["testResults"], result["validation"],
                             result["bgResults"], result["elapsedTime"],
                             result["totalCorrect"])):
      if v[1]["testerror"] > maxValidationAccuracy:
        maxValidationAccuracy = v[1]["testerror"]
        maxTestAccuracy = v[0]["testerror"]
        maxBGAccuracy = v[2]["testerror"]
        if v[4] is not None:
          maxTotalAccuracy = v[4]
        maxIter = i

    # print("Max validation score =", maxValidationAccuracy, " at iteration", maxIter)
    # print("Test score at that iteration =", maxTestAccuracy)
    # print("BG score at that iteration =", maxBGAccuracy)
    return maxTestAccuracy, maxValidationAccuracy, maxBGAccuracy, maxIter, maxTotalAccuracy
  except:
    print("Couldn't load experiment",expPath)
    return None, None, None, None, None