#include #include #include "node.h" TEST_CASE("Name") { node *n = new node("test"); REQUIRE(n->get_name() == "test"); n->set_name("foo"); REQUIRE(n->get_name() == "foo"); delete n; } TEST_CASE("Number of children") { node *n = new node("test"); REQUIRE(n->get_nr_children() == 0); for (std::size_t i = 0; i < 20; i++) { node *child = new node("child"); n->add_child(child); } REQUIRE(n->get_nr_children() == 20); delete n; } TEST_CASE("Get children") { node *n = new node("test"); REQUIRE(n->get_nr_children() == 0); for (std::size_t i = 0; i < 5; i++) { n->add_child(new node("child " + std::to_string(i))); } for (std::size_t i = 0; i < 5; i++) { REQUIRE(n->get_child(i)->get_name() == "child " + std::to_string(i)); } delete n; } TEST_CASE("Global node counting") { node *n = new node(); // TODO: ensure this test starts at node_id 0 (currently this is undefined // based on order the tests are run) for the time being, this gets the offset int node_id_start = std::stoi(n->get_name().substr(5)); // this tests if the node id was correctly extracted REQUIRE(n->get_name() == "node_" + std::to_string(node_id_start)); for (std::size_t i = 0; i < 5; i++) { n->add_child(new node()); } n->add_child(new node("explicit name")); for (std::size_t i = 0; i < 5; i++) { REQUIRE(n->get_child(i)->get_name() == "node_" + std::to_string(node_id_start + 1 + i)); } REQUIRE(n->get_child(5)->get_name() == "explicit name"); delete n; }