2018-12-11 17:21:53 -08:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# Runs one or more regression tests. Retries tests up to 3 times.
|
|
|
|
#
|
|
|
|
# Example usage:
|
|
|
|
# ./run_regression_tests.sh regression-tests/cartpole-es.yaml
|
|
|
|
|
|
|
|
import yaml
|
|
|
|
import sys
|
|
|
|
|
|
|
|
import ray
|
|
|
|
from ray.tune import run_experiments
|
|
|
|
|
2019-02-15 13:32:43 -08:00
|
|
|
if __name__ == "__main__":
|
2018-12-11 17:21:53 -08:00
|
|
|
|
|
|
|
ray.init()
|
|
|
|
|
|
|
|
for test in sys.argv[1:]:
|
|
|
|
experiments = yaml.load(open(test).read())
|
|
|
|
|
|
|
|
print("== Test config ==")
|
|
|
|
print(yaml.dump(experiments))
|
|
|
|
|
|
|
|
for i in range(3):
|
2019-01-03 15:15:36 +08:00
|
|
|
trials = run_experiments(experiments, resume=False)
|
2018-12-11 17:21:53 -08:00
|
|
|
|
|
|
|
num_failures = 0
|
|
|
|
for t in trials:
|
|
|
|
if (t.last_result["episode_reward_mean"] <
|
|
|
|
t.stopping_criterion["episode_reward_mean"]):
|
|
|
|
num_failures += 1
|
|
|
|
|
|
|
|
if not num_failures:
|
|
|
|
print("Regression test PASSED")
|
|
|
|
sys.exit(0)
|
|
|
|
|
|
|
|
print("Regression test flaked, retry", i)
|
|
|
|
|
|
|
|
print("Regression test FAILED")
|
|
|
|
sys.exit(1)
|