Skip to content

Commit

Permalink
Improve coverage.
Browse files Browse the repository at this point in the history
  • Loading branch information
reitermarkus committed Aug 10, 2022
1 parent 06ad776 commit d6f2dff
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 0 deletions.
20 changes: 20 additions & 0 deletions tests/common/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,23 @@ pub fn new_i2c(
pub fn destroy_i2c<MODE>(sensor: Lsm303agr<interface::I2cInterface<I2cMock>, MODE>) {
sensor.destroy().done();
}

#[macro_export]
macro_rules! assert_eq_xyz {
($data:expr, $x_unit:ident, $y_unit:ident, $z_unit:ident, $xyz_unit:ident) => {{
let (x_raw, y_raw, z_raw) = $data.xyz_raw();
assert_eq!($data.x_raw(), x_raw);
assert_eq!($data.y_raw(), y_raw);
assert_eq!($data.z_raw(), z_raw);

let (x_unscaled, y_unscaled, z_unscaled) = $data.xyz_unscaled();
assert_eq!($data.x_unscaled(), x_unscaled);
assert_eq!($data.y_unscaled(), y_unscaled);
assert_eq!($data.z_unscaled(), z_unscaled);

let (x_unit, y_unit, z_unit) = $data.$xyz_unit();
assert_eq!($data.$x_unit(), x_unit);
assert_eq!($data.$y_unit(), y_unit);
assert_eq!($data.$z_unit(), z_unit);
}};
}
13 changes: 13 additions & 0 deletions tests/magnetometer.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#[macro_use]
mod common;
use crate::common::{
destroy_i2c, destroy_spi, new_i2c, new_spi_mag, BitFlags as BF, Register, DEFAULT_CFG_REG_A_M,
Expand Down Expand Up @@ -28,6 +29,12 @@ set_mag_odr!(set_mag_odr_hz20, Hz20, 1 << 2);
set_mag_odr!(set_mag_odr_hz50, Hz50, 2 << 2);
set_mag_odr!(set_mag_odr_hz100, Hz100, 3 << 2);

macro_rules! assert_eq_xyz_nt {
($data:expr) => {{
crate::assert_eq_xyz!($data, x_nt, y_nt, z_nt, xyz_nt);
}};
}

#[test]
fn can_take_one_shot_measurement_i2c() {
let mut sensor = new_i2c(&[
Expand All @@ -45,6 +52,8 @@ fn can_take_one_shot_measurement_i2c() {
]);
let data = nb::block!(sensor.magnetic_field()).unwrap();

assert_eq_xyz_nt!(data);

assert_eq!(data.x_raw(), 0x2010);
assert_eq!(data.y_raw(), 0x4030);
assert_eq!(data.z_raw(), 0x6050);
Expand Down Expand Up @@ -73,6 +82,8 @@ fn can_take_continuous_measurement_i2c() {
let mut sensor = sensor.into_mag_continuous().ok().unwrap();
let data = sensor.magnetic_field().unwrap();

assert_eq_xyz_nt!(data);

assert_eq!(data.x_raw(), 0x2010);
assert_eq!(data.y_raw(), 0x4030);
assert_eq!(data.z_raw(), 0x6050);
Expand Down Expand Up @@ -116,6 +127,8 @@ fn can_take_continuous_measurement_spi() {
let mut sensor = sensor.into_mag_continuous().ok().unwrap();
let data = sensor.magnetic_field().unwrap();

assert_eq_xyz_nt!(data);

assert_eq!(data.x_raw(), 0x2010);
assert_eq!(data.y_raw(), 0x4030);
assert_eq!(data.z_raw(), 0x6050);
Expand Down
14 changes: 14 additions & 0 deletions tests/read_accel.rs
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,12 @@ macro_rules! measurement_almost_eq {
}};
}

macro_rules! assert_eq_xyz_mg {
($data:expr) => {{
crate::assert_eq_xyz!($data, x_mg, y_mg, z_mg, xyz_mg);
}};
}

#[test]
fn can_get_8_bit_data_i2c() {
let mut sensor = new_i2c(&[
Expand Down Expand Up @@ -172,6 +178,8 @@ fn can_get_8_bit_data_i2c() {
.unwrap();
let data = sensor.acceleration().unwrap();

assert_eq_xyz_mg!(data);

assert_eq!(data.x_raw(), 0x2010);
assert_eq!(data.y_raw(), 0x4030);
assert_eq!(data.z_raw(), 0x6050);
Expand Down Expand Up @@ -211,6 +219,8 @@ fn can_get_10_bit_data_i2c() {
.unwrap();
let data = sensor.acceleration().unwrap();

assert_eq_xyz_mg!(data);

assert_eq!(data.x_raw(), 0x2010);
assert_eq!(data.y_raw(), 0x4030);
assert_eq!(data.z_raw(), 0x6050);
Expand Down Expand Up @@ -258,6 +268,8 @@ fn can_get_10_bit_data_spi() {
.unwrap();
let data = sensor.acceleration().unwrap();

assert_eq_xyz_mg!(data);

assert_eq!(data.x_raw(), 0x2010);
assert_eq!(data.y_raw(), 0x4030);
assert_eq!(data.z_raw(), 0x6050);
Expand Down Expand Up @@ -304,6 +316,8 @@ fn can_get_12_bit_data_i2c() {
.unwrap();
let data = sensor.acceleration().unwrap();

assert_eq_xyz_mg!(data);

assert_eq!(data.x_raw(), 0x2010);
assert_eq!(data.y_raw(), 0x4030);
assert_eq!(data.z_raw(), 0x6050);
Expand Down

0 comments on commit d6f2dff

Please sign in to comment.