From 731e680b6c16477be7e3ba0b79e4e0a9fcf600c2 Mon Sep 17 00:00:00 2001 From: noahbaculi Date: Tue, 18 Jul 2023 12:14:22 -0700 Subject: [PATCH] test_parse_measure_break --- src/parser.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/parser.rs b/src/parser.rs index 40590b2..80cc697 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -58,6 +58,47 @@ fn parse_measure_break(input_line: &str) -> Option>> { } None } +#[cfg(test)] +mod test_parse_measure_break { + use super::*; + + #[test] + fn measure_break_dash() { + assert_eq!(parse_measure_break("-"), Some(Line::MeasureBreak)); + } + #[test] + fn measure_break_en_dash() { + assert_eq!(parse_measure_break("–"), Some(Line::MeasureBreak)); + } + #[test] + fn measure_break_em_dash() { + assert_eq!(parse_measure_break("—"), Some(Line::MeasureBreak)); + } + #[test] + fn empty_input() { + assert_eq!(parse_measure_break(""), None); + } + #[test] + fn no_measure_break() { + assert_eq!(parse_measure_break("A2C5Eb4"), None); + } + #[test] + fn whitespace_input() { + assert_eq!(parse_measure_break(" "), None); + } + #[test] + fn multiple_dashes() { + assert_eq!(parse_measure_break("---"), Some(Line::MeasureBreak)); + } + #[test] + fn multiple_en_dashes() { + assert_eq!(parse_measure_break("–––"), Some(Line::MeasureBreak)); + } + #[test] + fn mixed_dashes() { + assert_eq!(parse_measure_break("-–—"), None); + } +} /// Parses input line to extract valid musical pitches, returning an error if any part of the /// input line cannot be parsed into a pitch.