diff --git a/tests/node_comb.rs b/tests/node_comb.rs index 7c4c304..2d394ca 100644 --- a/tests/node_comb.rs +++ b/tests/node_comb.rs @@ -48,3 +48,43 @@ fn check_node_comb_1() { (2993, 1420), (3004, 1775), (3994, 1297), (4005, 1485) ]); } + +#[test] +fn check_node_comb_time() { + let (node_conf, mut node_exec) = new_node_engine(); + let mut matrix = Matrix::new(node_conf, 3, 3); + + let test = NodeId::Test(0); + let comb_1 = NodeId::Comb(0); + let out_1 = NodeId::Out(0); + matrix.place(0, 1, + Cell::empty(test) + .input(None, None, None) + .out(None, test.out("tsig"), None)); + matrix.place(1, 1, + Cell::empty(comb_1) + .input(None, comb_1.inp("inp"), None) + .out(None, comb_1.out("sig"), None)); + matrix.place(2, 2, + Cell::empty(out_1) + .input(None, out_1.inp("ch1"), out_1.inp("ch1")) + .out(None, None, None)); + + pset_n(&mut matrix, comb_1, "g", 0.75); + pset_d(&mut matrix, comb_1, "time", 100.0); + matrix.sync().unwrap(); + + pset_n(&mut matrix, test, "trig", 1.0); + + let (out_l, _) = run_for_ms(&mut node_exec, 300.0); + let rms_mimax = calc_rms_mimax_each_ms(&out_l[..], 25.0); + assert_minmax_of_rms!(rms_mimax[0], (0.0, 1.0)); + assert_minmax_of_rms!(rms_mimax[1], (0.0, 0.0)); + assert_minmax_of_rms!(rms_mimax[2], (0.0, 0.0)); + assert_minmax_of_rms!(rms_mimax[3], (0.0, 0.0)); + assert_minmax_of_rms!(rms_mimax[4], (-0.0001, 0.7502)); + assert_minmax_of_rms!(rms_mimax[5], (0.0, 0.0)); + assert_minmax_of_rms!(rms_mimax[6], (0.0, 0.0)); + assert_minmax_of_rms!(rms_mimax[7], (0.0, 0.0)); + assert_minmax_of_rms!(rms_mimax[8], (-0.00027, 0.56277)); +}