nyavascript 0.1.0

Lisp implementation. Called NyavaScript because I'm a monster
Documentation
use super::*;

#[test]
pub fn procedural_with_no_args_returns_nil() {
    let subject = SXRef::from(vec![
        SXRef::symbol(";".into()),
    ]);

    let expected =  SXRef::nil();

    let actual = FunScope::procedural(subject, &mut env()).unwrap();

    assert_eq!(expected, actual)
}

#[test]
pub fn procedural_returns_result_of_last_evaluated_list() {
    let subject = SXRef::from(vec![
        SXRef::symbol(";".into()),
        SXRef::from(vec![
            SXRef::symbol("car".into()),
            SXRef::quote(SXRef::from(vec![
                SXRef::number(1),
                SXRef::number(2),
            ])),
        ]),
        SXRef::from(vec![
            SXRef::symbol("cdr".into()),
            SXRef::quote(SXRef::from(vec![
                SXRef::number(1),
                SXRef::number(2),
            ])),
        ]),
    ]);

    let expected = SXRef::from(vec![SXRef::number(2)]);

    let actual = FunScope::procedural(subject, &mut env()).unwrap();

    assert_eq!(expected, actual)
}