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