mitchmindtree 09fd5562be Update ASIO implementation for new error handling and Host API
This is currently untested and will almost certainly not build. I'm
about to move into a Windows VM to get everything running properly
again.
2019-07-05 05:51:28 +10:00

90 lines
2.0 KiB
Rust

use super::{deinterleave, interleave};
#[test]
fn interleave_two() {
let a = vec![vec![1, 1, 1, 1], vec![2, 2, 2, 2]];
let goal = vec![1, 2, 1, 2, 1, 2, 1, 2];
let mut result = vec![0; 8];
interleave(&a[..], &mut result);
assert_eq!(goal, result);
}
#[test]
fn interleave_three() {
let a = vec![vec![1, 1, 1, 1], vec![2, 2, 2, 2], vec![3, 3, 3, 3]];
let goal = vec![1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3];
let mut result = vec![0; 12];
interleave(&a[..], &mut result);
assert_eq!(goal, result);
}
#[test]
fn interleave_none() {
let a = vec![Vec::<i32>::new()];
let goal = Vec::<i32>::new();
let mut result = Vec::<i32>::new();
interleave(&a[..], &mut result);
assert_eq!(goal, result);
}
#[test]
fn interleave_two_diff() {
let a = vec![vec![1, 2, 3, 4], vec![5, 6, 7, 8]];
let goal = vec![1, 5, 2, 6, 3, 7, 4, 8];
let mut result = vec![0; 8];
interleave(&a[..], &mut result);
assert_eq!(goal, result);
}
#[test]
fn deinterleave_two() {
let goal = vec![vec![1, 1, 1, 1], vec![2, 2, 2, 2]];
let a = vec![1, 2, 1, 2, 1, 2, 1, 2];
let mut result = vec![vec![0; 4]; 2];
deinterleave(&a[..], &mut result[..]);
assert_eq!(goal, result);
}
#[test]
fn deinterleave_three() {
let goal = vec![vec![1, 1, 1, 1], vec![2, 2, 2, 2], vec![3, 3, 3, 3]];
let a = vec![1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3];
let mut result = vec![vec![0; 4]; 3];
deinterleave(&a[..], &mut result[..]);
assert_eq!(goal, result);
}
#[test]
fn deinterleave_none() {
let goal = vec![Vec::<i32>::new()];
let a = Vec::<i32>::new();
let mut result = vec![Vec::<i32>::new()];
deinterleave(&a[..], &mut result[..]);
assert_eq!(goal, result);
}
#[test]
fn deinterleave_two_diff() {
let goal = vec![vec![1, 2, 3, 4], vec![5, 6, 7, 8]];
let a = vec![1, 5, 2, 6, 3, 7, 4, 8];
let mut result = vec![vec![0; 4]; 2];
deinterleave(&a[..], &mut result[..]);
assert_eq!(goal, result);
}