processors 0.2.1

Modular Audio Processors
#[cfg(test)]
mod tests {
    extern crate pcm_flow;

    use super::super::oscillators::Sine;
    use super::super::distortion::DigitalClip;
    use self::pcm_flow::graph::Graph;
    use self::pcm_flow::processor::Processor;

    #[test]
    fn sine_test() {
        let mut graph = Graph::new(10, 41000);
        let sine_id = graph.add_processor(Box::new(Sine::new(1000)));
        graph.set_input_amt(1);
        graph.set_output_amt(1);
        graph.connect_input(0, (sine_id, 0)).unwrap();
        graph.connect_output(0, (sine_id, 0)).unwrap();
        let mut inputs = Vec::new();
        let mut outputs = Vec::new();
        for _ in 0..10 {
            inputs.push(vec![[440.0]]);
            outputs.push(vec![[0.0]]);
        }
        for _ in 0..1000 {
            graph.process(&inputs, &mut outputs)
        }
    }

    #[test]
    fn dist_test() {
        let mut graph = Graph::new(10, 41000);
        let hc_id = graph.add_processor(Box::new(DigitalClip{}));
        let sine_id = graph.add_processor(Box::new(Sine::new(1000)));
        graph.set_input_amt(1);
        graph.set_output_amt(1);
        graph.connect_input(0, (sine_id, 0)).unwrap();
        graph.add_connection(&(sine_id, 0), &(hc_id, 0)).unwrap();
        graph.connect_output(0, (hc_id, 0)).unwrap();
        let mut inputs = Vec::new();
        let mut outputs = Vec::new();
        for _ in 0..10 {
            inputs.push(vec![[440.0]]);
            outputs.push(vec![[0.0]]);
        }
        for _ in 0..1000 {
            graph.process(&inputs, &mut outputs)
        }
    }
}