From d6b37e68d0196ba6f1bbfe517ce002b0abed732b Mon Sep 17 00:00:00 2001 From: Weird Constructor Date: Fri, 5 Aug 2022 05:14:26 +0200 Subject: [PATCH] Check the phase oscillator of synfx-dsp-jit and make sure everything works as expected --- tests/node_code.rs | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/node_code.rs b/tests/node_code.rs index 0e699fb..b5f1c83 100644 --- a/tests/node_code.rs +++ b/tests/node_code.rs @@ -39,3 +39,53 @@ fn check_node_code_1() { assert_decimated_feq!(res.0, 50, vec![0.3; 10]); } +#[test] +fn check_node_code_state() { + let (mut matrix, mut node_exec) = setup(); + + let block_fun = matrix.get_block_function(0).expect("block fun exists"); + { + let mut block_fun = block_fun.lock().expect("matrix lock"); + block_fun.instanciate_at(0, 0, 2, "value", Some("220.0".to_string())); + block_fun.instanciate_at(0, 1, 2, "phase", None); + block_fun.instanciate_at(0, 1, 3, "value", Some("2.0".to_string())); + block_fun.instanciate_at(0, 2, 2, "*", None); + block_fun.instanciate_at(0, 3, 1, "-", None); + block_fun.instanciate_at(0, 2, 1, "value", Some("1.0".to_string())); + block_fun.instanciate_at(0, 4, 1, "set", Some("&sig1".to_string())); + } + + matrix.check_block_function(0).expect("no compile error"); + + let fft = run_and_get_fft4096_now(&mut node_exec, 50); + // Aliasing sawtooth I expect: + assert_eq!( + fft, + vec![ + (205, 133), + (215, 576), + (226, 527), + (237, 90), + (431, 195), + (441, 322), + (452, 131), + (646, 61), + (657, 204), + (668, 157), + (872, 113), + (883, 155), + (894, 51), + (1098, 127), + (1109, 82), + (1314, 85), + (1324, 98), + (1540, 93), + (1755, 70), + (1766, 67), + (1981, 72), + (2196, 60), + (2422, 57), + (2638, 52) + ] + ); +}