def test_inplace(simple_header, simple_calibration): sensors = ("acc", "gyro") simple_header.enabled_sensors = sensors dataset = Dataset({k: np.ones((100, 3)) for k in sensors}, np.arange(100), simple_header) # default: inplace = False cal_ds = dataset.calibrate_imu(simple_calibration) assert id(cal_ds) != id(dataset) for sensor in sensors: assert id(getattr(cal_ds, sensor)) != id(getattr(dataset, sensor)) dataset = Dataset({k: np.ones((100, 3)) for k in sensors}, np.arange(100), simple_header) cal_ds = dataset.calibrate_imu(simple_calibration, inplace=True) assert id(cal_ds) == id(dataset) for sensor in sensors: assert id(getattr(cal_ds, sensor)) == id(getattr(dataset, sensor)) dataset = Dataset({k: np.ones((100, 3)) for k in sensors}, np.arange(100), simple_header) cal_ds = dataset.calibrate_imu(simple_calibration, inplace=False) assert id(cal_ds) != id(dataset) for sensor in sensors: assert id(getattr(cal_ds, sensor)) != id(getattr(dataset, sensor))
def test_non_existent_warning(simple_header, simple_calibration): sensors = ("acc", "gyro") simple_header.enabled_sensors = sensors dataset = Dataset({}, np.arange(100), simple_header) with pytest.warns(UserWarning) as warn: dataset.calibrate_imu(simple_calibration) assert len(warn) == 2 for m in warn: assert any(s in str(m) for s in sensors) assert "calibration" in str(m)
def test_repeated_cal_error(simple_header, simple_calibration): sensors = ("acc", "gyro") simple_header.enabled_sensors = sensors dataset = Dataset({k: np.ones((100, 3)) for k in sensors}, np.arange(100), simple_header) cal_ds = dataset.calibrate_imu(simple_calibration) with pytest.raises(RepeatedCalibrationError) as e: cal_ds.calibrate_imu(simple_calibration) assert sensors[0] in str(e.value)
def test_imu_cal(simple_header, simple_calibration): simple_header.enabled_sensors = ("acc", "gyro") dataset = Dataset({ "acc": np.ones((100, 3)), "gyro": np.ones((100, 3)) }, np.arange(100), simple_header) cal_ds = dataset.calibrate_imu(simple_calibration) assert np.all(cal_ds.gyro.data == factory_calibrate_sensors_dict["gyro"] / 3) assert np.all(cal_ds.acc.data == factory_calibrate_sensors_dict["acc"] / 2) assert cal_ds.gyro.is_factory_calibrated is True assert cal_ds.acc.is_factory_calibrated is True assert cal_ds.gyro.is_calibrated is True assert cal_ds.acc.is_calibrated is True