Add ts_node_child_count function
This commit is contained in:
parent
466daeaf99
commit
af5a118000
3 changed files with 59 additions and 41 deletions
|
|
@ -22,54 +22,65 @@ describe("Node", []() {
|
|||
ts_node_release(root);
|
||||
});
|
||||
|
||||
it("knows its position and size", [&]() {
|
||||
TSNode *number1 = ts_node_child(root, 0);
|
||||
TSNode *number2 = ts_node_child(root, 1);
|
||||
TSNode *number3 = ts_node_child(root, 2);
|
||||
|
||||
AssertThat(ts_node_name(root), Equals("array"));
|
||||
AssertThat(ts_node_name(number1), Equals("number"));
|
||||
AssertThat(ts_node_name(number2), Equals("number"));
|
||||
AssertThat(ts_node_name(number3), Equals("number"));
|
||||
|
||||
AssertThat(ts_node_pos(root), Equals<size_t>(2));
|
||||
AssertThat(ts_node_size(root), Equals<size_t>(12));
|
||||
|
||||
AssertThat(ts_node_pos(number1), Equals<size_t>(3));
|
||||
AssertThat(ts_node_size(number1), Equals<size_t>(2));
|
||||
|
||||
AssertThat(ts_node_pos(number2), Equals<size_t>(7));
|
||||
AssertThat(ts_node_size(number2), Equals<size_t>(1));
|
||||
|
||||
AssertThat(ts_node_pos(number3), Equals<size_t>(10));
|
||||
AssertThat(ts_node_size(number3), Equals<size_t>(3));
|
||||
|
||||
ts_node_release(number1);
|
||||
ts_node_release(number2);
|
||||
ts_node_release(number3);
|
||||
describe("child_count", [&]() {
|
||||
it("returns the number of visible child nodes", [&]() {
|
||||
AssertThat(ts_node_child_count(root), Equals<size_t>(3));
|
||||
});
|
||||
});
|
||||
|
||||
it("can retrieve its parent node", [&]() {
|
||||
TSNode *number2 = ts_node_child(root, 1);
|
||||
AssertThat(ts_node_parent(number2), Equals(root));
|
||||
describe("child(i)", [&]() {
|
||||
it("returns the child node at the given index", [&]() {
|
||||
TSNode *number1 = ts_node_child(root, 0);
|
||||
TSNode *number2 = ts_node_child(root, 1);
|
||||
TSNode *number3 = ts_node_child(root, 2);
|
||||
|
||||
ts_node_release(number2);
|
||||
AssertThat(ts_node_name(root), Equals("array"));
|
||||
AssertThat(ts_node_name(number1), Equals("number"));
|
||||
AssertThat(ts_node_name(number2), Equals("number"));
|
||||
AssertThat(ts_node_name(number3), Equals("number"));
|
||||
|
||||
AssertThat(ts_node_pos(root), Equals<size_t>(2));
|
||||
AssertThat(ts_node_size(root), Equals<size_t>(12));
|
||||
|
||||
AssertThat(ts_node_pos(number1), Equals<size_t>(3));
|
||||
AssertThat(ts_node_size(number1), Equals<size_t>(2));
|
||||
|
||||
AssertThat(ts_node_pos(number2), Equals<size_t>(7));
|
||||
AssertThat(ts_node_size(number2), Equals<size_t>(1));
|
||||
|
||||
AssertThat(ts_node_pos(number3), Equals<size_t>(10));
|
||||
AssertThat(ts_node_size(number3), Equals<size_t>(3));
|
||||
|
||||
ts_node_release(number1);
|
||||
ts_node_release(number2);
|
||||
ts_node_release(number3);
|
||||
});
|
||||
});
|
||||
|
||||
it("can retrieve its sibling nodes", [&]() {
|
||||
TSNode *number1 = ts_node_child(root, 0);
|
||||
TSNode *number2 = ts_node_child(root, 1);
|
||||
TSNode *number3 = ts_node_child(root, 2);
|
||||
|
||||
AssertThat(ts_node_eq(ts_node_next_sibling(number2), number3), IsTrue());
|
||||
AssertThat(ts_node_eq(ts_node_prev_sibling(number2), number1), IsTrue());
|
||||
|
||||
ts_node_release(number1);
|
||||
ts_node_release(number2);
|
||||
ts_node_release(number3);
|
||||
describe("parent", [&]() {
|
||||
it("returns the node's parent node", [&]() {
|
||||
TSNode *number = ts_node_child(root, 1);
|
||||
AssertThat(ts_node_parent(number), Equals(root));
|
||||
ts_node_release(number);
|
||||
});
|
||||
});
|
||||
|
||||
describe("retrieving leaf nodes", [&]() {
|
||||
describe("next_sibling and prev_sibling", [&]() {
|
||||
it("returns the node's next and previous siblings", [&]() {
|
||||
TSNode *number1 = ts_node_child(root, 0);
|
||||
TSNode *number2 = ts_node_child(root, 1);
|
||||
TSNode *number3 = ts_node_child(root, 2);
|
||||
|
||||
AssertThat(ts_node_eq(ts_node_next_sibling(number2), number3), IsTrue());
|
||||
AssertThat(ts_node_eq(ts_node_prev_sibling(number2), number1), IsTrue());
|
||||
|
||||
ts_node_release(number1);
|
||||
ts_node_release(number2);
|
||||
ts_node_release(number3);
|
||||
});
|
||||
});
|
||||
|
||||
describe("leaf_at_pos", [&]() {
|
||||
it("can retrieve the leaf node at a given position", [&]() {
|
||||
TSNode *number1 = ts_node_leaf_at_pos(root, 3);
|
||||
TSNode *number2 = ts_node_leaf_at_pos(root, 7);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue