test: additional test cases

This commit is contained in:
Roman Godmaire 2024-05-04 17:02:07 -04:00
parent 769cc61d48
commit 0af757fa27

View file

@ -108,13 +108,18 @@ mod test {
#[case("[1 (+ 1 2)]", "[1 3]")]
#[case("{}", "{}")]
#[case("{:a \"uwu\"}", "{:a: uwu}")]
// Lists
#[case("(list 1 2 3)", "(1 2 3)")]
#[case("(list? (list))", "true")]
#[case("(list? 23)", "false")]
// Vectors
#[case("(vector 1 2 3)", "[1 2 3]")]
#[case("(vector? [])", "true")]
// Unsure how to test this due to hashmaps being unordered
// #[case("(hashmap :a 1 :b 2)", "{:a: 1, :b: 2}")]
#[case("(vector? 23)", "false")]
// Hashmaps
#[case("(hashmap :a 1)", "{:a: 1}")]
#[case("(hashmap? {})", "true")]
#[case("(hashmap? 23)", "false")]
// Environment manipulation
#[case("(define! asdf (+ 2 2)) (+ asdf 2)", "4\n6")]
#[case("(let* (a 2) (+ a 2))", "4")]
@ -131,6 +136,11 @@ mod test {
// Boolean operations
#[case("(eq? 1 1)", "true")]
#[case("(eq? 1 2)", "false")]
#[case("(eq? true true)", "true")]
#[case("(eq? true false)", "false")]
#[case("(eq? \"blue\" \"blue\")", "true")]
#[case("(eq? \"blue\" \"red\")", "false")]
#[case("(eq? nil nil)", "true")]
#[case("(not false)", "true")]
#[case("(not true)", "false")]
#[case("(not nil)", "false")]