code: def bestScore(expPath, suite):
    
    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
docs: Given a single experiment, return the test, validation and other scores from
    the iteration with maximum validation accuracy.