rulox_types 0.6.1

Helper types for the rulox crate.
Documentation
use super::*;

#[test]
fn display() {
    let value = LoxValue::from(vec![
        LoxValue::Bool(true),
        LoxValue::from("a value".to_string()),
        LoxValue::Num(1.0),
        LoxValue::Num(-2.5),
        LoxValue::Nil,
    ]);

    assert_eq!(value.to_string(), "[true, a value, 1, -2.5, nil]");
}

#[test]
fn add() {
    let num1 = LoxValue::from(1);

    let num2: LoxResult = num1 + 2.5;

    assert_eq!(num2.unwrap(), 3.5);
}

#[test]
fn sub() {
    let num1 = LoxValue::from(5);

    let num2: LoxResult = num1 - 3;

    assert_eq!(num2.unwrap(), LoxValue::from(2));
}

#[test]
fn mul() {
    let num1 = LoxValue::from(2);

    let num2: LoxResult = num1 * 3;

    assert_eq!(num2.unwrap(), 6);
}

#[test]
fn div() {
    let num1 = LoxValue::from(8);

    let num2: LoxResult = num1 / 2;

    assert_eq!(num2.unwrap(), LoxValue::from(4));
}

#[test]
fn comp() {
    assert!(LoxValue::Num(8.0) > LoxValue::Num(5.0));
}