1 #include "NasalHash.hxx"
2 #include "from_nasal.hxx"
3 #include "to_nasal.hxx"
11 std::cerr << "failed:" << #a << std::endl; \
15 int main(int argc, char* argv[])
17 naContext c = naNewContext();
20 using namespace nasal;
22 r = to_nasal(c, "Test");
23 VERIFY( strncmp("Test", naStr_data(r), naStr_len(r)) == 0 );
24 VERIFY( from_nasal<std::string>(c, r) == "Test" );
26 r = to_nasal(c, std::string("Test"));
27 VERIFY( strncmp("Test", naStr_data(r), naStr_len(r)) == 0 );
28 VERIFY( from_nasal<std::string>(c, r) == "Test" );
31 VERIFY( naNumValue(r).num == 42 );
32 VERIFY( from_nasal<int>(c, r) == 42 );
34 r = to_nasal(c, 4.2f);
35 VERIFY( naNumValue(r).num == 4.2f );
36 VERIFY( from_nasal<float>(c, r) == 4.2f );
41 r = to_nasal(c, "string");
44 from_nasal<int>(c, r);
46 std::cerr << "failed: Expected bad_nasal_cast to be thrown" << std::endl;
49 catch(nasal::bad_nasal_cast&)
54 hash.set("vec2", vec);
55 hash.set("name", "my-name");
56 hash.set("string", std::string("blub"));
58 r = to_nasal(c, hash);
59 VERIFY( naIsHash(r) );
61 Hash mod = hash.createHash("mod");
62 mod.set("parent", hash);