#[cfg(test)]
mod tests {
use finx::Finx;
fn run_and_capture(source: &str) -> Vec<String> {
let mut engine = Finx::new();
engine.execute(source).expect("Execution failed");
engine.get_output()
}
#[test]
fn test_speed_fibonacci() {
let src = r#"
fn fib(n) {
if n <= 1 {
return n;
}
return fib(n - 1) + fib(n - 2);
}
print(fib(28));
"#;
let start = std::time::Instant::now();
let output = run_and_capture(src);
println!("Done in: {:?}\nOutput: {:?}", start.elapsed(), output);
}
#[test]
fn test_speed_loop() {
let src = r#"
let num = 1_000_000;
while num > 0 {
num = num - 1;
}
"#;
let start = std::time::Instant::now();
let output = run_and_capture(src);
println!("Done in: {:?}\nOutput: {:?}", start.elapsed(), output);
}
}