| import sys | |
| from pathlib import Path | |
| # Add the parent directory of this project to sys.path | |
| sys.path.insert(0, str(Path.cwd().parent)) | |
| from drone_env.core.graders import compute_grade | |
| from drone_env.models import DroneState | |
| def test_grader(): | |
| # Test perfect state | |
| state_perfect = DroneState( | |
| deliveries_total=1, | |
| deliveries_done=1, | |
| battery=1.0, | |
| step_count=0 | |
| ) | |
| score_p = compute_grade(state_perfect, 60.0) | |
| print(f"Perfect score: {score_p}") | |
| assert 0 < score_p < 1 | |
| # Test failure state | |
| state_fail = DroneState( | |
| deliveries_total=1, | |
| deliveries_done=0, | |
| battery=0.0, | |
| step_count=60 | |
| ) | |
| score_f = compute_grade(state_fail, 60.0) | |
| print(f"Failure score: {score_f}") | |
| assert 0 < score_f < 1 | |
| # Test intermediate | |
| state_mid = DroneState( | |
| deliveries_total=1, | |
| deliveries_done=0, | |
| battery=0.5, | |
| step_count=30 | |
| ) | |
| score_m = compute_grade(state_mid, 60.0) | |
| print(f"Mid score: {score_m}") | |
| assert 0 < score_m < 1 | |
| print("All grader tests passed!") | |
| if __name__ == "__main__": | |
| test_grader() | |