Work on new unit test for volumes.

This commit is contained in:
David Williams 2012-12-02 09:43:00 +01:00
parent f9250a778b
commit 9e8e976bfe
2 changed files with 33 additions and 13 deletions

View File

@ -24,30 +24,48 @@ freely, subject to the following restrictions:
#include "testvolume.h" #include "testvolume.h"
#include "PolyVoxCore/LargeVolume.h" #include "PolyVoxCore/LargeVolume.h"
#include "PolyVoxCore/RawVolume.h"
#include "PolyVoxCore/SimpleVolume.h"
#include <QtTest> #include <QtTest>
using namespace PolyVox; using namespace PolyVox;
void TestVolume::testSize() template <typename VolumeType>
int32_t complexVolumeTest(void)
{ {
const int32_t g_uVolumeSideLength = 128; //VolumeType testVolume(Region(-57, -31, 12, 64, 96, 131)); // Deliberatly awkward size
LargeVolume<uint8_t> volData(Region(Vector3DInt32(0,0,0), Vector3DInt32(g_uVolumeSideLength-1, g_uVolumeSideLength-1, g_uVolumeSideLength-1))); VolumeType testVolume(Region(0, 0, 0, 63, 63, 63));
for(int z = testVolume.getEnclosingRegion().getLowerZ(); z <= testVolume.getEnclosingRegion().getUpperZ(); z++)
for (int32_t z = 0; z < g_uVolumeSideLength; z++)
{ {
for (int32_t y = 0; y < g_uVolumeSideLength; y++) for(int y = testVolume.getEnclosingRegion().getLowerY(); y <= testVolume.getEnclosingRegion().getUpperY(); y++)
{ {
for (int32_t x = 0; x < g_uVolumeSideLength; x++) for(int x = testVolume.getEnclosingRegion().getLowerX(); x <= testVolume.getEnclosingRegion().getUpperX(); x++)
{ {
volData.setVoxelAt(x,y,z,255); testVolume.setVoxelAt(x, y, z, x + y + z);
} }
} }
} }
QCOMPARE(volData.getWidth(), g_uVolumeSideLength); return testVolume.getVoxelAt(10,20,30);
QCOMPARE(volData.getHeight(), g_uVolumeSideLength); }
QCOMPARE(volData.getDepth(), g_uVolumeSideLength);
void TestVolume::testLarge()
{
int32_t result = complexVolumeTest< LargeVolume<int32_t> >();
QCOMPARE(result, static_cast<int32_t>(60));
}
void TestVolume::testRaw()
{
int32_t result = complexVolumeTest< RawVolume<int32_t> >();
QCOMPARE(result, static_cast<int32_t>(60));
}
void TestVolume::testSimple()
{
int32_t result = complexVolumeTest< SimpleVolume<int32_t> >();
QCOMPARE(result, static_cast<int32_t>(60));
} }
QTEST_MAIN(TestVolume) QTEST_MAIN(TestVolume)

View File

@ -31,7 +31,9 @@ class TestVolume: public QObject
Q_OBJECT Q_OBJECT
private slots: private slots:
void testSize(); void testLarge();
void testRaw();
void testSimple();
}; };
#endif #endif