#include "camellya.h" #include 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(s1)->value == 2.0); REQUIRE(std::dynamic_pointer_cast(s2)->value == 3.0); REQUIRE(std::dynamic_pointer_cast(has_a)->value == true); REQUIRE(std::dynamic_pointer_cast(has_z)->value == false); REQUIRE(std::dynamic_pointer_cast(val_b)->value == 2.0); } }