summarise_results.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import json
  2. import sys
  3. def extract_test_results(res_file_path: str) -> tuple[list[str], list[str]]:
  4. passed = []
  5. failed = []
  6. with open(res_file_path, 'r') as file:
  7. for line in file:
  8. data = json.loads(line.strip())
  9. instance_id = data['instance_id']
  10. resolved = False
  11. if 'test_result' in data and 'result' in data['test_result']:
  12. resolved = data['test_result']['result']
  13. if resolved:
  14. passed.append(instance_id)
  15. else:
  16. failed.append(instance_id)
  17. return passed, failed
  18. if __name__ == '__main__':
  19. if len(sys.argv) != 2:
  20. print(
  21. 'Usage: poetry run python summarise_results.py <path_to_output_jsonl_file>'
  22. )
  23. sys.exit(1)
  24. json_file_path = sys.argv[1]
  25. passed_tests, failed_tests = extract_test_results(json_file_path)
  26. succ_rate = len(passed_tests) / (len(passed_tests) + len(failed_tests))
  27. print(
  28. f'\nPassed {len(passed_tests)} tests, failed {len(failed_tests)} tests, resolve rate = {succ_rate}'
  29. )
  30. print('PASSED TESTS:')
  31. print(passed_tests)
  32. print('FAILED TESTS:')
  33. print(failed_tests)