use rodio::Source; use std::{io::BufReader, time::Duration}; #[test] fn test_flac_encodings() { // 16 bit FLAC file exported from Audacity (2 channels, compression level 5) let file = std::fs::File::open("tests/audacity16bit_level5.flac").unwrap(); let mut decoder = rodio::Decoder::new(BufReader::new(file)).unwrap(); assert!(decoder.any(|x| x != 0)); // File is not just silence assert_eq!(decoder.total_duration(), Some(Duration::from_secs(3))); // duration is calculated correctly // 24 bit FLAC file exported from Audacity (2 channels, various compression levels) for level in &[0, 5, 8] { let file = std::fs::File::open(format!("tests/audacity24bit_level{}.flac", level)).unwrap(); let mut decoder = rodio::Decoder::new(BufReader::new(file)).unwrap(); assert!(decoder.any(|x| x != 0)); assert_eq!(decoder.total_duration(), Some(Duration::from_secs(3))); } }