✅ Add tests for from_iso & to_iso
This commit is contained in:
parent
7c3ffb7ecf
commit
51849c987e
92
src/lib.rs
92
src/lib.rs
@ -11,7 +11,7 @@ pub enum TeethKind {
|
||||
Premolar,
|
||||
Molar,
|
||||
}
|
||||
#[derive(PartialEq, Clone, Copy)]
|
||||
#[derive(PartialEq, Clone, Copy, Debug)]
|
||||
pub enum QuadrantKind {
|
||||
TopLeft,
|
||||
TopRight,
|
||||
@ -91,4 +91,94 @@ impl Teeth {
|
||||
};
|
||||
quadrant_number.to_string() + &self.number.to_string()
|
||||
}
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
macro_rules! to_iso {
|
||||
($name:ident, $quadrant:expr,$number:expr, $permanent:expr, $iso:expr) => {
|
||||
#[test]
|
||||
fn $name() {
|
||||
let teeth = Teeth {
|
||||
quadrant: $quadrant,
|
||||
number: $number,
|
||||
permanent: $permanent,
|
||||
};
|
||||
assert_eq!(teeth.to_iso(), $iso);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! from_iso {
|
||||
($name:ident, $iso:expr, $quadrant:expr,$number:expr, $permanent:expr) => {
|
||||
#[test]
|
||||
fn $name() {
|
||||
let teeth = Teeth::from_iso($iso);
|
||||
assert_eq!(teeth.quadrant, $quadrant);
|
||||
assert_eq!(teeth.number, $number);
|
||||
assert_eq!(teeth.permanent, $permanent);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! from_iso_fail {
|
||||
($name:ident, $iso:expr) => {
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn $name() {
|
||||
Teeth::from_iso($iso);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
to_iso!(to_iso_11, QuadrantKind::TopLeft, 1, true, "11");
|
||||
to_iso!(to_iso_18, QuadrantKind::TopLeft, 8, true, "18");
|
||||
to_iso!(to_iso_21, QuadrantKind::TopRight, 1, true, "21");
|
||||
to_iso!(to_iso_28, QuadrantKind::TopRight, 8, true, "28");
|
||||
to_iso!(to_iso_31, QuadrantKind::BottomRight, 1, true, "31");
|
||||
to_iso!(to_iso_38, QuadrantKind::BottomRight, 8, true, "38");
|
||||
to_iso!(to_iso_41, QuadrantKind::BottomLeft, 1, true, "41");
|
||||
to_iso!(to_iso_48, QuadrantKind::BottomLeft, 8, true, "48");
|
||||
to_iso!(to_iso_51, QuadrantKind::TopLeft, 1, false, "51");
|
||||
to_iso!(to_iso_55, QuadrantKind::TopLeft, 5, false, "55");
|
||||
to_iso!(to_iso_61, QuadrantKind::TopRight, 1, false, "61");
|
||||
to_iso!(to_iso_65, QuadrantKind::TopRight, 5, false, "65");
|
||||
to_iso!(to_iso_71, QuadrantKind::BottomRight, 1, false, "71");
|
||||
to_iso!(to_iso_75, QuadrantKind::BottomRight, 5, false, "75");
|
||||
to_iso!(to_iso_81, QuadrantKind::BottomLeft, 1, false, "81");
|
||||
to_iso!(to_iso_85, QuadrantKind::BottomLeft, 5, false, "85");
|
||||
|
||||
from_iso!(from_iso_11, "11", QuadrantKind::TopLeft, 1, true);
|
||||
from_iso!(from_iso_18, "18", QuadrantKind::TopLeft, 8, true);
|
||||
from_iso!(from_iso_21, "21", QuadrantKind::TopRight, 1, true);
|
||||
from_iso!(from_iso_28, "28", QuadrantKind::TopRight, 8, true);
|
||||
from_iso!(from_iso_31, "31", QuadrantKind::BottomRight, 1, true);
|
||||
from_iso!(from_iso_38, "38", QuadrantKind::BottomRight, 8, true);
|
||||
from_iso!(from_iso_41, "41", QuadrantKind::BottomLeft, 1, true);
|
||||
from_iso!(from_iso_48, "48", QuadrantKind::BottomLeft, 8, true);
|
||||
from_iso!(from_iso_51, "51", QuadrantKind::TopLeft, 1, false);
|
||||
from_iso!(from_iso_55, "55", QuadrantKind::TopLeft, 5, false);
|
||||
from_iso!(from_iso_61, "61", QuadrantKind::TopRight, 1, false);
|
||||
from_iso!(from_iso_65, "65", QuadrantKind::TopRight, 5, false);
|
||||
from_iso!(from_iso_71, "71", QuadrantKind::BottomRight, 1, false);
|
||||
from_iso!(from_iso_75, "75", QuadrantKind::BottomRight, 5, false);
|
||||
from_iso!(from_iso_81, "81", QuadrantKind::BottomLeft, 1, false);
|
||||
from_iso!(from_iso_85, "85", QuadrantKind::BottomLeft, 5, false);
|
||||
|
||||
from_iso_fail!(from_iso_fail_10, "10");
|
||||
from_iso_fail!(from_iso_fail_19, "19");
|
||||
from_iso_fail!(from_iso_fail_20, "20");
|
||||
from_iso_fail!(from_iso_fail_29, "29");
|
||||
from_iso_fail!(from_iso_fail_30, "30");
|
||||
from_iso_fail!(from_iso_fail_39, "39");
|
||||
from_iso_fail!(from_iso_fail_40, "40");
|
||||
from_iso_fail!(from_iso_fail_49, "49");
|
||||
from_iso_fail!(from_iso_fail_50, "50");
|
||||
from_iso_fail!(from_iso_fail_56, "56");
|
||||
from_iso_fail!(from_iso_fail_60, "60");
|
||||
from_iso_fail!(from_iso_fail_66, "66");
|
||||
from_iso_fail!(from_iso_fail_70, "70");
|
||||
from_iso_fail!(from_iso_fail_76, "76");
|
||||
from_iso_fail!(from_iso_fail_80, "80");
|
||||
from_iso_fail!(from_iso_fail_86, "86");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user