mirror of
https://github.com/RustAudio/rodio
synced 2024-11-10 06:04:16 +00:00
Implementing seek test
This commit is contained in:
parent
5f9c521a8b
commit
78fffb4ec6
1 changed files with 18 additions and 33 deletions
|
@ -137,6 +137,7 @@ where
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn try_seek(&mut self, pos: Duration) -> Result<(), SeekError> {
|
fn try_seek(&mut self, pos: Duration) -> Result<(), SeekError> {
|
||||||
|
self.elapsed_ns += pos.as_nanos() as f32;
|
||||||
self.input.try_seek(pos)
|
self.input.try_seek(pos)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,16 +147,10 @@ mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::buffer::SamplesBuffer;
|
use crate::buffer::SamplesBuffer;
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
/// Create a SamplesBuffer of identical samples with value `value`.
|
/// Create a SamplesBuffer of identical samples with value `value`.
|
||||||
/// Returned buffer is one channel and has s sample rate of 1 hz.
|
/// Returned buffer is one channel and has s sample rate of 1 hz.
|
||||||
fn const_source(length: u8, value: f32) -> SamplesBuffer<f32> {
|
fn const_source(length: u8, value: f32) -> SamplesBuffer<f32> {
|
||||||
let data: Vec<f32> = (1..=length).map(|_| value).collect();
|
let data: Vec<f32> = (1..=length).map(|_| value).collect();
|
||||||
=======
|
|
||||||
fn dummysource(length: u8) -> SamplesBuffer<f32> {
|
|
||||||
// shamelessly copied from crossfade.rs
|
|
||||||
let data: Vec<f32> = (1..=length).map(f32::from).collect();
|
|
||||||
>>>>>>> parent of d5c9e0d (Code review stuff...)
|
|
||||||
SamplesBuffer::new(1, 1, data)
|
SamplesBuffer::new(1, 1, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,48 +165,38 @@ mod tests {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
<<<<<<< HEAD
|
|
||||||
fn test_linear_ramp() {
|
fn test_linear_ramp() {
|
||||||
let source1 = const_source(10, 1.0f32);
|
let source1 = const_source(10, 1.0f32);
|
||||||
=======
|
|
||||||
fn test_linearramp() {
|
|
||||||
let source1 = dummysource(10);
|
|
||||||
>>>>>>> parent of d5c9e0d (Code review stuff...)
|
|
||||||
let mut faded = linear_gain_ramp(source1, Duration::from_secs(4), 0.0, 1.0, true);
|
let mut faded = linear_gain_ramp(source1, Duration::from_secs(4), 0.0, 1.0, true);
|
||||||
|
|
||||||
assert_eq!(faded.next(), Some(0.0));
|
assert_eq!(faded.next(), Some(0.0));
|
||||||
|
assert_eq!(faded.next(), Some(0.25));
|
||||||
assert_eq!(faded.next(), Some(0.5));
|
assert_eq!(faded.next(), Some(0.5));
|
||||||
assert_eq!(faded.next(), Some(1.5));
|
assert_eq!(faded.next(), Some(0.75));
|
||||||
assert_eq!(faded.next(), Some(3.0));
|
assert_eq!(faded.next(), Some(1.0));
|
||||||
assert_eq!(faded.next(), Some(5.0));
|
assert_eq!(faded.next(), Some(1.0));
|
||||||
assert_eq!(faded.next(), Some(6.0));
|
assert_eq!(faded.next(), Some(1.0));
|
||||||
assert_eq!(faded.next(), Some(7.0));
|
assert_eq!(faded.next(), Some(1.0));
|
||||||
assert_eq!(faded.next(), Some(8.0));
|
assert_eq!(faded.next(), Some(1.0));
|
||||||
assert_eq!(faded.next(), Some(9.0));
|
assert_eq!(faded.next(), Some(1.0));
|
||||||
assert_eq!(faded.next(), Some(10.0));
|
|
||||||
assert_eq!(faded.next(), None);
|
assert_eq!(faded.next(), None);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
<<<<<<< HEAD
|
|
||||||
fn test_linear_ramp_clamped() {
|
fn test_linear_ramp_clamped() {
|
||||||
let source1 = const_source(10, 1.0f32);
|
let source1 = const_source(10, 1.0f32);
|
||||||
=======
|
|
||||||
fn test_linearramp_clamped() {
|
|
||||||
let source1 = dummysource(10);
|
|
||||||
>>>>>>> parent of d5c9e0d (Code review stuff...)
|
|
||||||
let mut faded = linear_gain_ramp(source1, Duration::from_secs(4), 0.0, 0.5, true);
|
let mut faded = linear_gain_ramp(source1, Duration::from_secs(4), 0.0, 0.5, true);
|
||||||
|
|
||||||
assert_eq!(faded.next(), Some(0.0));
|
assert_eq!(faded.next(), Some(0.0)); // fading in...
|
||||||
|
assert_eq!(faded.next(), Some(0.125));
|
||||||
assert_eq!(faded.next(), Some(0.25));
|
assert_eq!(faded.next(), Some(0.25));
|
||||||
assert_eq!(faded.next(), Some(0.75));
|
assert_eq!(faded.next(), Some(0.375));
|
||||||
assert_eq!(faded.next(), Some(1.5));
|
assert_eq!(faded.next(), Some(0.5)); // fade is done
|
||||||
assert_eq!(faded.next(), Some(2.5));
|
assert_eq!(faded.next(), Some(0.5));
|
||||||
assert_eq!(faded.next(), Some(3.0));
|
assert_eq!(faded.next(), Some(0.5));
|
||||||
assert_eq!(faded.next(), Some(3.5));
|
assert_eq!(faded.next(), Some(0.5));
|
||||||
assert_eq!(faded.next(), Some(4.0));
|
assert_eq!(faded.next(), Some(0.5));
|
||||||
assert_eq!(faded.next(), Some(4.5));
|
assert_eq!(faded.next(), Some(0.5));
|
||||||
assert_eq!(faded.next(), Some(5.0));
|
|
||||||
assert_eq!(faded.next(), None);
|
assert_eq!(faded.next(), None);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue