class LaserModelTests(unittest.TestCase): def setUp(self): self.servos = TestServos() self.model = LaserModel(self.servos, 150, 650, 400) def test_setxaxis_getxaxis(self): self.model.setXAxis(200) self.assertEqual(self.model.getXAxis(), 200) self.assertEqual(self.servos.xaxis, 200) def test_setyaxis_getyaxis(self): self.model.setYAxis(200) self.assertEqual(self.model.getYAxis(), 200) self.assertEqual(self.servos.yaxis, 200) def test_setxaxis_out_of_bounds_raises_valueerror(self): self.assertRaises(ValueError, self.model.setXAxis, 10) self.assertRaises(ValueError, self.model.setXAxis, 700) def test_setyaxis_out_of_bounds_raises_valueerror(self): self.assertRaises(ValueError, self.model.setYAxis, 10) self.assertRaises(ValueError, self.model.setYAxis, 700) def test_axis_defaults_to_400(self): self.assertEqual(self.model.getXAxis(), 400) self.assertEqual(self.model.getYAxis(), 400) self.assertEqual(self.servos.xaxis, 400) self.assertEqual(self.servos.yaxis, 400) def test_setcalibration_getcalibration(self): targetCal = [{'x': 150, 'y': 150}, {'x': 450, 'y': 150}, {'x': 400, 'y': 300}, {'x': 200, 'y': 300}] servoCal = [{'x': 10, 'y': 10}, {'x': 50, 'y': 10}, {'x': 50, 'y': 50}, {'x': 10, 'y': 50}] self.model.setCalibration(targetCal, servoCal) tc, sc = self.model.getCalibration() self.assertEqual(tc, targetCal) self.assertEqual(sc, servoCal) def test_setcalibration_saves_calibration(self): targetCal = [{'x': 150, 'y': 150}, {'x': 450, 'y': 150}, {'x': 400, 'y': 300}, {'x': 200, 'y': 300}] servoCal = [{'x': 10, 'y': 10}, {'x': 50, 'y': 10}, {'x': 50, 'y': 50}, {'x': 10, 'y': 50}] self.model.setCalibration(targetCal, servoCal) self.model = LaserModel(self.servos, 150, 650, 400) tc, sc = self.model.getCalibration() self.assertEqual(tc, targetCal) self.assertEqual(sc, servoCal) def test_target(self): targetCal = [{'x': 190, 'y': 190}, {'x': 555, 'y': 190}, {'x': 480, 'y': 525}, {'x': 240, 'y': 525}] servoCal = [{'x': 440, 'y': 298}, {'x': 340, 'y': 298}, {'x': 340, 'y': 220}, {'x': 440, 'y': 220}] #targetCal = [{"y": 89, "x": 143}, {"y": 89, "x": 516}, {"y": 437, "x": 447}, {"y": 435, "x": 190}] #servoCal = [{"y": 445, "x": 430}, {"y": 352, "x": 428}, {"y": 367, "x": 348}, {"y": 425, "x": 345}] self.model.setCalibration(targetCal, servoCal) self.model.target(190, 190) #self.model.target(144, 90) self.assertEqual(self.servos.xaxis, 440) self.assertEqual(self.servos.yaxis, 298)