main.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. def parse_line(line):
  2. """Parse a line into time and event."""
  3. parts = line.strip().split(' (event name: ')
  4. time_part, event_part = parts[0], parts[1]
  5. time_str = time_part.split()[0]
  6. time_val = float(time_str)
  7. return time_val, event_part
  8. def compare_files(file1, file2):
  9. """Compare two files and return the maximum delta."""
  10. max_delta = 0
  11. events_match = True
  12. with open(file1, 'r') as f1, open(file2, 'r') as f2:
  13. lines1 = f1.readlines()
  14. lines2 = f2.readlines()
  15. # For every line in the two files
  16. for line1, line2 in zip(lines1, lines2):
  17. # Split it on the time value and the event
  18. time1, event1 = parse_line(line1)
  19. time2, event2 = parse_line(line2)
  20. # Calculate the absolute difference of the two times
  21. delta = abs(time1 - time2)
  22. # Update max_delta if necessary
  23. if delta > max_delta:
  24. max_delta = delta
  25. # Check if events are the same
  26. if event1 != event2:
  27. events_match = False
  28. return max_delta, events_match
  29. # Example usage
  30. file1 = "./examples/BouncingBalls/Python/output.txt"
  31. file2 = "./examples/BouncingBalls/PyDEVS/output.txt"
  32. max_delta, file_match = compare_files(file1, file2)
  33. if file_match:
  34. print("Traces match")
  35. print("Maximum delta between the times:", max_delta)
  36. else:
  37. print("Traces don't match")