diff --git a/src/models.rs b/src/models.rs index 4aa497d..3acf60d 100644 --- a/src/models.rs +++ b/src/models.rs @@ -48,3 +48,21 @@ impl Default for Pos { Self::new(0, 1, 1) } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn valid_invalid_chars() { + let pos = Pos::default(); + + assert_eq!(Char::new('\0', pos), Err('\0')); + assert_eq!(Char::new('\t', pos), Err('\t')); + assert_eq!(Char::new('\r', pos), Err('\r')); + + assert_eq!(Char::new(' ', pos), Ok(Char { value: ' ', pos })); + assert_eq!(Char::new('\n', pos), Ok(Char { value: '\n', pos })); + assert_eq!(Char::new('a', pos), Ok(Char { value: 'a', pos })); + } +}