use super::harness::*; #[test] fn set_get() { expect_int(r#"42 "x" set "x" get"#, 42); } #[test] fn get_nonexistent() { expect_int(r#""novar" get"#, 0); } #[test] fn persistence_across_evals() { let f = forth(); let ctx = default_ctx(); f.evaluate(r#"10 "counter" set"#, &ctx).unwrap(); f.clear_stack(); f.evaluate(r#""counter" get 1 +"#, &ctx).unwrap(); assert_eq!(stack_int(&f), 11); } #[test] fn overwrite() { expect_int(r#"1 "x" set 99 "x" set "x" get"#, 99); } #[test] fn multiple_vars() { let f = run(r#"10 "a" set 20 "b" set "a" get "b" get +"#); assert_eq!(stack_int(&f), 30); } #[test] fn float_var() { let f = run(r#"3.14 "pi" set "pi" get"#); let val = stack_float(&f); assert!((val - 3.14).abs() < 1e-9); }