From abaa4b6336018eb391eacba9eddfab3165143a21 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Thu, 5 Mar 2026 09:09:10 -0600 Subject: [PATCH] Fix failing edge cases test --- neothesia/src/scene/freeplay/mod.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/neothesia/src/scene/freeplay/mod.rs b/neothesia/src/scene/freeplay/mod.rs index 38bb9109..76f12665 100644 --- a/neothesia/src/scene/freeplay/mod.rs +++ b/neothesia/src/scene/freeplay/mod.rs @@ -226,6 +226,10 @@ impl Scene for FreeplayScene { mod chords { /// Get chord name based on notes, eg. Cmaj7 pub fn deduce_name(midi_notes: &[u8]) -> String { + if midi_notes.is_empty() { + return "No notes".to_string(); + } + if midi_notes.len() == 1 { return note_name(midi_notes[0]).to_string(); } @@ -343,7 +347,7 @@ mod chords { #[test] fn test_edge_cases() { assert_eq!(deduce_name(&[]), "No notes"); - assert_eq!(deduce_name(&[60]), "single"); + assert_eq!(deduce_name(&[60]), "C"); // Multiple octaves should normalize assert_eq!(deduce_name(&[48, 64, 67, 72]), "CM"); }