96 lines
1.4 KiB
C++
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);
|
|
}
|
|
} |