adana-script 0.18.8

namespaces aliases for command lines & basic scripting language
Documentation
use std::collections::BTreeMap;

use adana_script_core::primitive::Primitive;

use crate::compute;

#[test]
fn test_op_assign_add() {
    let mut ctx = BTreeMap::new();

    let script = r#"
        x = 2
        x+=1
        x
    "#;
    assert_eq!(Primitive::Int(3), compute(script, &mut ctx, "N/A").unwrap());
}

#[test]
fn test_op_assign_sub() {
    let mut ctx = BTreeMap::new();

    let script = r#"
        x = 2
        x-=1
        x
    "#;
    assert_eq!(Primitive::U8(1), compute(script, &mut ctx, "N/A").unwrap());
}

#[test]
fn test_op_assign_mul() {
    let mut ctx = BTreeMap::new();

    let script = r#"
        x = 2
        x*=2
        x
    "#;
    assert_eq!(Primitive::Int(4), compute(script, &mut ctx, "N/A").unwrap());
}

#[test]
fn test_op_assign_div() {
    let mut ctx = BTreeMap::new();

    let script = r#"
        x = 12
        x/=2
        x
    "#;
    assert_eq!(Primitive::Int(6), compute(script, &mut ctx, "N/A").unwrap());
}

#[test]
fn test_op_assign_mod() {
    let mut ctx = BTreeMap::new();

    let script = r#"
        x = 12
        x%=5
        x
    "#;
    assert_eq!(Primitive::U8(2), compute(script, &mut ctx, "N/A").unwrap());
}