use super::harness::*; #[test] fn basic_emit() { let outputs = expect_outputs(r#""kick" sound ."#, 1); assert!(outputs[0].contains("sound/kick")); } #[test] fn alias_s() { let outputs = expect_outputs(r#""snare" s ."#, 1); assert!(outputs[0].contains("sound/snare")); } #[test] fn with_params() { let outputs = expect_outputs(r#""kick" s 440 freq 0.5 gain ."#, 1); assert!(outputs[0].contains("sound/kick")); assert!(outputs[0].contains("freq/440")); assert!(outputs[0].contains("gain/0.5")); } #[test] fn auto_dur() { let outputs = expect_outputs(r#""kick" s ."#, 1); assert!(outputs[0].contains("dur/")); } #[test] fn auto_delaytime() { let outputs = expect_outputs(r#""kick" s ."#, 1); assert!(outputs[0].contains("delaytime/")); } #[test] fn emit_no_sound() { expect_error(".", "no sound set"); } #[test] fn multiple_emits() { let outputs = expect_outputs(r#""kick" s . "snare" s ."#, 2); assert!(outputs[0].contains("sound/kick")); assert!(outputs[1].contains("sound/snare")); } #[test] fn envelope_params() { let outputs = expect_outputs( r#""synth" s 0.01 attack 0.1 decay 0.7 sustain 0.3 release ."#, 1, ); assert!(outputs[0].contains("attack/0.01")); assert!(outputs[0].contains("decay/0.1")); assert!(outputs[0].contains("sustain/0.7")); assert!(outputs[0].contains("release/0.3")); } #[test] fn filter_params() { let outputs = expect_outputs(r#""synth" s 2000 lpf 0.5 lpq ."#, 1); assert!(outputs[0].contains("lpf/2000")); assert!(outputs[0].contains("lpq/0.5")); } #[test] fn adsr_sets_all_envelope_params() { let outputs = expect_outputs(r#""synth" s 0.01 0.1 0.5 0.3 adsr ."#, 1); assert!(outputs[0].contains("attack/0.01")); assert!(outputs[0].contains("decay/0.1")); assert!(outputs[0].contains("sustain/0.5")); assert!(outputs[0].contains("release/0.3")); } #[test] fn ad_sets_attack_decay_sustain_zero() { let outputs = expect_outputs(r#""synth" s 0.01 0.1 ad ."#, 1); assert!(outputs[0].contains("attack/0.01")); assert!(outputs[0].contains("decay/0.1")); assert!(outputs[0].contains("sustain/0")); } #[test] fn bank_param() { let outputs = expect_outputs(r#""loop" s "a" bank ."#, 1); assert!(outputs[0].contains("sound/loop")); assert!(outputs[0].contains("bank/a")); }