From f4d834b07b31ee241e926aa1ee3f17b0f2e9ef3d Mon Sep 17 00:00:00 2001 From: "Anthony J. Thibault" Date: Wed, 30 Mar 2016 16:15:29 -0700 Subject: [PATCH] OctreeTests: added unit tests for EntityTreeElement child accessors --- tests/octree/src/OctreeTests.cpp | 32 ++++++++++++++++++++++++++++++++ tests/octree/src/OctreeTests.h | 2 ++ 2 files changed, 34 insertions(+) diff --git a/tests/octree/src/OctreeTests.cpp b/tests/octree/src/OctreeTests.cpp index ef08855d06..64d68e8e13 100644 --- a/tests/octree/src/OctreeTests.cpp +++ b/tests/octree/src/OctreeTests.cpp @@ -795,3 +795,35 @@ void OctreeTests::modelItemTests() { #endif } +void OctreeTests::elementAddChildTests() { + EntityTreePointer tree = std::make_shared(); + auto elem = tree->createNewElement(); + QCOMPARE((bool)elem->getChildAtIndex(0), false); + elem->addChildAtIndex(0); + QCOMPARE((bool)elem->getChildAtIndex(0), true); + + const int MAX_CHILD_INDEX = 8; + for (int i = 0; i < MAX_CHILD_INDEX; i++) { + for (int j = 0; j < MAX_CHILD_INDEX; j++) { + auto e = tree->createNewElement(); + + // add a single child. + auto firstChild = e->addChildAtIndex(i); + QCOMPARE(e->getChildAtIndex(i), firstChild); + + if (i != j) { + // add a second child. + auto secondChild = e->addChildAtIndex(j); + QCOMPARE(e->getChildAtIndex(i), firstChild); + QCOMPARE(e->getChildAtIndex(j), secondChild); + + // remove scecond child. + e->removeChildAtIndex(j); + + QCOMPARE((bool)e->getChildAtIndex(j), false); + } + + QCOMPARE(e->getChildAtIndex(i), firstChild); + } + } +} diff --git a/tests/octree/src/OctreeTests.h b/tests/octree/src/OctreeTests.h index c0e989805a..b236ab08c9 100644 --- a/tests/octree/src/OctreeTests.h +++ b/tests/octree/src/OctreeTests.h @@ -25,6 +25,8 @@ private slots: // This test is fine void modelItemTests(); + void elementAddChildTests(); + // TODO: Break these into separate test functions };