From eed9196cd11b5564c64c4f8f849077928ff08138 Mon Sep 17 00:00:00 2001 From: Andre Wagner Date: Fri, 1 May 2026 16:55:36 -0500 Subject: [PATCH] . --- TODO.md | 3 +++ src/vm/tests.cc | 28 +++++++++++----------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/TODO.md b/TODO.md index f9c69d4..f1a2742 100644 --- a/TODO.md +++ b/TODO.md @@ -32,6 +32,9 @@ After some additional development: - [x] Assembler - [ ] VM execution - [ ] Stack operations (nil, integer, float, string, function) + - [ ] Integer + - [ ] Float + - [ ] String - [ ] Expressions - [ ] Local/global variables - [ ] Functions diff --git a/src/vm/tests.cc b/src/vm/tests.cc index c06daa4..61688fb 100644 --- a/src/vm/tests.cc +++ b/src/vm/tests.cc @@ -95,24 +95,18 @@ TEST(VM, BasicCode) TEST(VM, SumIntegers) { - ASSERT_EQ(VM().load_bytecode(as::Assembler(R"( -.func 0 - pushi 2 - pushi 3 - sum - ret - )").assemble()).call(0).to_integer(-1), 5); -} + auto test_op = [](int32_t op1, int32_t op2, std::string oper) { + return VM().load_bytecode(as::Assembler(std::format(R"( + .func 0 + pushi {} + pushi {} + {} + ret + )", op1, op2, oper)).assemble()).call(0).to_integer(-1); + }; -TEST(VM, SubtractIntegers) -{ - ASSERT_EQ(VM().load_bytecode(as::Assembler(R"( -.func 0 - pushi 2 - pushi 3 - sub - ret - )").assemble()).call(0).to_integer(-1), -1); + ASSERT_EQ(test_op(2, 3, "sum"), 5); + ASSERT_EQ(test_op(2, 3, "sub"), -1); } int main(int argc, char** argv)