toctave

t(iny)octave
Log | Files | Refs | README

commit 480ed4e59f92e0972c12a9135bf41a26ff2be2ed
parent 13c5eea0844d801eef3037f4d9ab5c966809b920
Author: Mohammad-Reza Nabipoor <mnabipoor@gnu.org>
Date:   Sat, 28 May 2022 00:49:23 +0430

cgen.test.cpp: Execute generated routines

Diffstat:
Mcgen.test.cpp | 16++++++++++++++++
1 file changed, 16 insertions(+), 0 deletions(-)

diff --git a/cgen.test.cpp b/cgen.test.cpp @@ -2,6 +2,7 @@ #include "cgen.hpp" #include <cassert> +#include <cmath> #include <iostream> #include "env.hpp" @@ -207,6 +208,8 @@ cgen_jitter() pop )"); je.exec(env); + assert(env.empty()); + assert(je.result() == 120.0); } { @@ -214,6 +217,8 @@ cgen_jitter() ast::Op{ '+' }, ast::mknum(1), ast::mknum(2)) }; auto j{ cgen::jitter(binop1.begin(), binop1.end()) }; auto s{ cgen::disasm(j) }; + auto je{ j.mkexec() }; + env::Env env; p(s); assert(s == R"( push 1.000000 @@ -221,6 +226,9 @@ cgen_jitter() add pop )"); + je.exec(env); + assert(env.empty()); + assert(je.result() == 3.0); } { @@ -231,6 +239,9 @@ cgen_jitter() ast::mkop(ast::Op{ '*' }, ast::mknum(3), ast::mknum(4)))) }; auto j{ cgen::jitter(ass1.begin(), ass1.end()) }; auto s{ cgen::disasm(j) }; + auto je{ j.mkexec() }; + env::Env env; + double d{ 0.0 }; p(s); assert(s == R"( push 1.000000 @@ -244,6 +255,11 @@ cgen_jitter() pushnan pop )"); + je.exec(env); + assert(std::isnan(je.result())); + assert(env.size() == 1); + assert(toctave_var(&env, "x", &d)); + assert(d == 12.5); } if (0) {