58 lines
1.4 KiB
Python
Executable File
58 lines
1.4 KiB
Python
Executable File
#!/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)
|