Update workstation UI, ROS task control and device integration
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
from pathlib import Path
|
||||
from unittest import TestCase
|
||||
from arm_application.tactile_calibration import ForceCurve,TactileCalibration
|
||||
|
||||
|
||||
class TactileCalibrationTest(TestCase):
|
||||
def setUp(self):
|
||||
path=Path(__file__).resolve().parents[2]/'src/arm_application/config/tactile/force_calibration.json'
|
||||
self.calibration=TactileCalibration(path)
|
||||
|
||||
def test_calibration_knots_units_and_shear_sign(self):
|
||||
self.assertAlmostEqual(self.calibration.normal.convert(10000),.377)
|
||||
self.assertAlmostEqual(self.calibration.normal.convert(30000),1.377)
|
||||
self.assertAlmostEqual(self.calibration.shear.convert(36000),1.19)
|
||||
self.assertAlmostEqual(self.calibration.shear.convert(-36000),-1.19)
|
||||
self.assertEqual(self.calibration.normal.convert(0),0.)
|
||||
self.assertEqual(self.calibration.shear.convert(-500),0.)
|
||||
|
||||
def test_interpolation_and_conversion_never_replace_raw_values(self):
|
||||
raw={'fnormal':20000.,'fshearx':52000.,'fsheary':-52000.}
|
||||
saved=dict(raw);force=self.calibration.convert(raw)
|
||||
self.assertAlmostEqual(force['fnormal'],.877)
|
||||
self.assertAlmostEqual(force['fshearx'],1.625)
|
||||
self.assertAlmostEqual(force['fsheary'],-1.625)
|
||||
self.assertEqual(raw,saved)
|
||||
with self.assertRaises(ValueError):self.calibration.normal.convert(float('nan'))
|
||||
|
||||
def test_invalid_or_disabled_curve_does_not_mislabel_raw_as_newtons(self):
|
||||
with self.assertRaises(ValueError):ForceCurve.from_config({'enabled':False})
|
||||
with self.assertRaises(ValueError):ForceCurve.from_config({'enabled':True,'method':'piecewise_linear',
|
||||
'points':[{'raw':1,'force_n':0},{'raw':1,'force_n':1}]})
|
||||
Reference in New Issue
Block a user