Files
dl_old/dl/script/dl_script_test.h
T
2026-04-28 00:53:04 +08:00

96 lines
1.4 KiB
C++

/**
* @file dl_script_test.h
* @brief dl脚本测试用例
*
*
* @version 1.0
* @author lveyou
* @date 24-07-05
*
*/
#pragma once
#include "script/dl_script.h"
namespace dl
{
// 基础
constexpr std::string_view SCRIPT_TEST_BASE = R"(
print "hello dl!"
)";
// 表达式
constexpr std::string_view SCRIPT_TEST_EXPR = R"(
a = 0
b = 2
c = 4
d = 6
print a + (b - c) * d / 3
print "结果应该为-4"
)";
// 字符串
constexpr std::string_view SCRIPT_TEST_STRING = R"(
a = "hello"
b = "dl"
c = a + b
print a+" "+b+"!"
print c
)";
// 断言
constexpr std::string_view SCRIPT_TEST_ASSERT = R"(
a = 1
assert a == 1
assert a == 0
)";
// 作用域
constexpr std::string_view SCRIPT_TEST_SCOPE = R"(
a = 1
{
b = 2
print a
print b
print c
}
{
c = 3
print a
print b
print c
}
print a
print b
print c
)";
// vector
constexpr std::string_view SCRIPT_TEST_VECTOR = R"(
a = 13
vec = { 1,3, 5, 7 +1 ,9 *2,11}
print vec
)";
// function
constexpr std::string_view SCRIPT_TEST_FUNCTION = R"(
function add(a, b)
{
return a + b
}
print(add(2, 3))
)";
inline void TestScript(std::string_view str)
{
ScriptBlock block = g_script->Compile(str);
ScriptVM vm;
vm.Execute(block);
}
inline void TestScriptAll()
{
TestScript(SCRIPT_TEST_BASE);
TestScript(SCRIPT_TEST_EXPR);
TestScript(SCRIPT_TEST_STRING);
TestScript(SCRIPT_TEST_ASSERT);
TestScript(SCRIPT_TEST_SCOPE);
TestScript(SCRIPT_TEST_VECTOR);
TestScript(SCRIPT_TEST_FUNCTION);
}
}