#!/usr/bin/env python3 import sys import math max_value = 0.0 min_value = -100.0 max_vel = 315 max_accel = 1975 result_filename = sys.argv[1] result_file = open(result_filename, 'r') retval = 0 for line in result_file.readlines(): (line, in_value, in_vel, in_accel, out_value, out_vel, out_accel) = line.split() in_value = float(in_value) in_vel = float(in_vel) in_accel = float(in_accel) out_value = float(out_value) out_vel = float(out_vel) out_accel = float(out_accel) # # constraints # if out_value > max_value: print(("max=%.3f, out=%.3f, position violation on line %s" % (max_value, out_value, line))) retval = 1 if out_value < min_value: print(("min=%.3f, out=%.3f, position violation on line %s" % (min_value, out_value, line))) retval = 1 if math.fabs(out_vel) > max_vel: print(("max_vel=%.3f, out_vel=%.3f, velocity violation on line %s" % (max_vel, out_vel, line))) retval = 1 if math.fabs(out_accel) > max_accel: print(("max_accel=%.3f, out_accel=%.3f, acceleration violation on line %s" % (max_accel, out_accel, line))) retval = 1 # # input -> output following # error = math.fabs(in_value - out_value) if error > 0.0: print(("input=%.6f, output=%.6f, error=%.6f, threshold=%.6f, following failure on line %s" % (in_value, out_value, error, threshold, line))) retval = 1 sys.exit(retval)