From 42e2ebf734de746c03eb09019003b1c11a381c72 Mon Sep 17 00:00:00 2001 From: Matt Williams Date: Thu, 21 Jun 2012 22:25:20 +0100 Subject: [PATCH] Add a Python test to the suite to test surface extraction --- tests/CMakeLists.txt | 5 +++++ tests/TestSurfaceExtractor.py | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 tests/TestSurfaceExtractor.py diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2ab4e40e..953743c5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -35,6 +35,11 @@ REMOVE_DEFINITIONS(-DQT_GUI_LIB) #Make sure the tests don't link to the QtGui # ADD_TEST(ClassNameFeature1Test ${LATEST_TEST} testFeature1) # ADD_TEST(ClassNameFeature2Test ${LATEST_TEST} testFeature2) +# Python tests +IF(BUILD_BINDINGS) + ADD_TEST(PythonSurfaceExtractorTest python ${CMAKE_CURRENT_SOURCE_DIR}/TestSurfaceExtractor.py) +ENDIF() + # AmbientOcclusionGenerator tests CREATE_TEST(TestAmbientOcclusionGenerator.h TestAmbientOcclusionGenerator.cpp TestAmbientOcclusionGenerator) ADD_TEST(AmbientOcclusionGeneratorExecuteTest ${LATEST_TEST} testExecute) diff --git a/tests/TestSurfaceExtractor.py b/tests/TestSurfaceExtractor.py new file mode 100644 index 00000000..be66e3d2 --- /dev/null +++ b/tests/TestSurfaceExtractor.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- + +import sys +sys.path.append("../library/bindings/") + +import unittest + +class TestSurfaceExtractor(unittest.TestCase): + def setUp(self): + import PolyVoxCore + + #Create a small volume + r = PolyVoxCore.Region(PolyVoxCore.Vector3DInt32(0,0,0), PolyVoxCore.Vector3DInt32(31,31,31)) + vol = PolyVoxCore.SimpleVolumeDensity8(r) + #Set one single voxel to have a reasonably high density + vol.setVoxelAt(PolyVoxCore.Vector3DInt32(5, 5, 5), PolyVoxCore.Density8(200)) + self.mesh = PolyVoxCore.SurfaceMeshPositionMaterialNormal() + extractor = PolyVoxCore.SurfaceExtractorSimpleVolumeDensity8(vol, r, self.mesh) + extractor.execute() + + def test_num_vertices(self): + self.assertEqual(self.mesh.getNoOfVertices(), 6) + +if __name__ == '__main__': + unittest.main() \ No newline at end of file