mod ch2;
mod ch3;
mod ch4;
mod ch5;
mod ch6;
mod ch7;
mod ch8;
#[derive(Debug, Clone)]
pub struct TestCase {
pub expected: Vec<&'static str>,
pub not_expected: Vec<&'static str>,
}
impl TestCase {
#[allow(dead_code)]
pub const fn new(expected: Vec<&'static str>, not_expected: Vec<&'static str>) -> Self {
Self {
expected,
not_expected,
}
}
}
pub fn get_test_case(chapter: u8, exercise: bool) -> Option<TestCase> {
match (chapter, exercise) {
(2, false) => Some(ch2::base()),
(3, false) => Some(ch3::base()),
(4, false) => Some(ch4::base()),
(5, false) => Some(ch5::base()),
(6, false) => Some(ch6::base()),
(7, false) => Some(ch7::base()),
(8, false) => Some(ch8::base()),
(3, true) => Some(ch3::exercise()),
(4, true) => Some(ch4::exercise()),
(5, true) => Some(ch5::exercise()),
(6, true) => Some(ch6::exercise()),
(8, true) => Some(ch8::exercise()),
_ => None,
}
}
pub fn list_available_tests() -> Vec<(u8, bool, &'static str)> {
vec![
(2, false, "ch2 base test"),
(3, false, "ch3 base test"),
(3, true, "ch3 exercise test"),
(4, false, "ch4 base test"),
(4, true, "ch4 exercise test"),
(5, false, "ch5 base test"),
(5, true, "ch5 exercise test"),
(6, false, "ch6 base test"),
(6, true, "ch6 exercise test"),
(7, false, "ch7 base test"),
(8, false, "ch8 base test"),
(8, true, "ch8 exercise test"),
]
}