use pnc_engine::{parse, value::Value};
#[test]
fn sub_ints() {
let mut stack = Vec::new();
parse::eval_line(&mut stack, "5 3 -").unwrap();
assert_eq!(stack, vec![Value::Int(2.into())]);
}
#[test]
fn mul_ints() {
let mut stack = Vec::new();
parse::eval_line(&mut stack, "4 5 *").unwrap();
assert_eq!(stack, vec![Value::Int(20.into())]);
}
#[test]
fn stack_underflow_errors() {
let mut stack = Vec::new();
let err = parse::eval_line(&mut stack, "+").unwrap_err();
assert!(matches!(err, pnc_engine::PncError::StackUnderflow));
}
#[test]
fn unknown_token_errors() {
let mut stack = Vec::new();
let err = parse::eval_line(&mut stack, "&").unwrap_err();
assert!(matches!(err, pnc_engine::PncError::Parse(_)));
}