Files
2026-08-20 06:17:39 +08:00

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)