.
This commit is contained in:
32
tests/test_map_builtin.cpp
Normal file
32
tests/test_map_builtin.cpp
Normal file
@@ -0,0 +1,32 @@
|
||||
#include "camellya.h"
|
||||
#include <catch2/catch_all.hpp>
|
||||
|
||||
using namespace camellya;
|
||||
|
||||
TEST_CASE("Map built-in class test", "[map]") {
|
||||
Camellya c;
|
||||
|
||||
SECTION("map methods") {
|
||||
REQUIRE(c.do_string(R"(
|
||||
var m = {"a": 1, "b": 2};
|
||||
var s1 = m.len();
|
||||
m.set("c", 3);
|
||||
var s2 = m.len();
|
||||
var has_a = m.has("a");
|
||||
var has_z = m.has("z");
|
||||
var val_b = m.get("b");
|
||||
)"));
|
||||
|
||||
auto s1 = c.get_global("s1");
|
||||
auto s2 = c.get_global("s2");
|
||||
auto has_a = c.get_global("has_a");
|
||||
auto has_z = c.get_global("has_z");
|
||||
auto val_b = c.get_global("val_b");
|
||||
|
||||
REQUIRE(std::dynamic_pointer_cast<NumberValue>(s1)->value == 2.0);
|
||||
REQUIRE(std::dynamic_pointer_cast<NumberValue>(s2)->value == 3.0);
|
||||
REQUIRE(std::dynamic_pointer_cast<BoolValue>(has_a)->value == true);
|
||||
REQUIRE(std::dynamic_pointer_cast<BoolValue>(has_z)->value == false);
|
||||
REQUIRE(std::dynamic_pointer_cast<NumberValue>(val_b)->value == 2.0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user