use algorithmify::Interpreter;
use algorithmify_macros::define_function_builder;
#[test]
pub fn test_block() {
#[define_function_builder]
fn block() -> usize {
let result = {
let a = 1;
a + 2
};
result
}
let expression = Interpreter::execute_function(block__function_builder()).unwrap();
assert_eq!(block(), 3);
assert_eq!(expression, 3.into());
}
#[test]
pub fn test_block_scope() {
#[define_function_builder]
fn block() -> usize {
let result = 5;
{
let mut _result = 1;
_result = 2;
}
result
}
let expression = Interpreter::execute_function(block__function_builder()).unwrap();
assert_eq!(block(), 5);
assert_eq!(expression, 5.into());
}