def test_unpack_location(self): location = (self.plate[0], (1, 0, -1)) res = unpack_location(location) self.assertEqual(res, (self.plate[0], (1, 0, -1))) res = unpack_location(self.plate[0]) self.assertEqual( res, (self.plate[0], self.plate[0].from_center(x=0, y=0, z=1)))
def calibrate(self, calibration_data, location, actual): actual = Vector(actual) placeable, expected = unpack_location(location) coordinates_to_deck = placeable.coordinates(placeable.get_deck()) expected_to_deck = expected + coordinates_to_deck delta = actual - expected_to_deck path = placeable.get_path() calibration_data = copy.deepcopy(calibration_data) current = {'children': calibration_data} for i, name in enumerate(path): children = current['children'] if name not in children: if i == len(path) - 1: children[name] = {} else: children[name] = {'children': {}} current = children[name] current['delta'] = delta self.calibration_data = calibration_data self._apply_calibration(calibration_data, self.root_placeable) return calibration_data