use pnc_engine::{parse, unit::UnitId, value::Value};
#[test]
fn parse_unit_bearing_number() {
let mut stack = Vec::new();
parse::eval_line(&mut stack, "100 f").unwrap();
assert_eq!(
stack,
vec![Value::Unit {
number: Box::new(Value::Int(100.into())),
unit: UnitId::Fahrenheit,
}]
);
}
#[test]
fn parse_unit_conversion() {
let mut stack = Vec::new();
parse::eval_line(&mut stack, "100 f to c").unwrap();
match stack.last().unwrap() {
Value::Unit { number, unit } => {
assert_eq!(*unit, UnitId::Celsius);
assert_eq!(
**number,
Value::Rational(num_rational::BigRational::new(340.into(), 9.into()))
);
}
_ => panic!("expected unit value"),
}
}