diff --git a/Xdmf.i b/Xdmf.i index 345211edf8be91b8f20ec539c744240b667c78f0..ac3a82225dc3952e95632cd8c01adb6ce8184dac 100644 --- a/Xdmf.i +++ b/Xdmf.i @@ -126,15 +126,15 @@ swig -v -c++ -python -o XdmfPython.cpp Xdmf.i else if(shared_ptr value = shared_dynamic_cast($1)) { *(shared_ptr< XdmfCurvilinearGrid > **)&($result) = value ? new shared_ptr< XdmfCurvilinearGrid >(value) : 0; } + else if(shared_ptr value = shared_dynamic_cast($1)) { + *(shared_ptr< XdmfGridCollection > **)&($result) = value ? new shared_ptr< XdmfGridCollection >(value) : 0; + } else if(shared_ptr value = shared_dynamic_cast($1)) { *(shared_ptr< XdmfDomain > **)&($result) = value ? new shared_ptr< XdmfDomain >(value) : 0; } else if(shared_ptr value = shared_dynamic_cast($1)) { *(shared_ptr< XdmfGeometry > **)&($result) = value ? new shared_ptr< XdmfGeometry >(value) : 0; } - else if(shared_ptr value = shared_dynamic_cast($1)) { - *(shared_ptr< XdmfGridCollection > **)&($result) = value ? new shared_ptr< XdmfGridCollection >(value) : 0; - } else if(shared_ptr value = shared_dynamic_cast($1)) { *(shared_ptr< XdmfInformation > **)&($result) = value ? new shared_ptr< XdmfInformation >(value) : 0; } @@ -260,6 +260,9 @@ swig -v -c++ -python -o XdmfPython.cpp Xdmf.i else if(shared_ptr gridCurvilinear = shared_dynamic_cast(obj)) { result = SWIG_NewPointerObj(SWIG_as_voidptr(new shared_ptr(gridCurvilinear)), SWIGTYPE_p_boost__shared_ptrT_XdmfCurvilinearGrid_t, SWIG_POINTER_OWN); } + else if(shared_ptr gridCollection = shared_dynamic_cast(obj)) { + result = SWIG_NewPointerObj(SWIG_as_voidptr(new shared_ptr(gridCollection)), SWIGTYPE_p_boost__shared_ptrT_XdmfGridCollection_t, SWIG_POINTER_OWN); + } else if(shared_ptr domain = shared_dynamic_cast(obj)) { result = SWIG_NewPointerObj(SWIG_as_voidptr(new shared_ptr(domain)), SWIGTYPE_p_boost__shared_ptrT_XdmfDomain_t, SWIG_POINTER_OWN); } @@ -269,9 +272,6 @@ swig -v -c++ -python -o XdmfPython.cpp Xdmf.i else if(shared_ptr graph = shared_dynamic_cast(obj)) { result = SWIG_NewPointerObj(SWIG_as_voidptr(new shared_ptr(graph)), SWIGTYPE_p_boost__shared_ptrT_XdmfGraph_t, SWIG_POINTER_OWN); } - else if(shared_ptr gridCollection = shared_dynamic_cast(obj)) { - result = SWIG_NewPointerObj(SWIG_as_voidptr(new shared_ptr(gridCollection)), SWIGTYPE_p_boost__shared_ptrT_XdmfGridCollection_t, SWIG_POINTER_OWN); - } else if(shared_ptr information = shared_dynamic_cast(obj)) { result = SWIG_NewPointerObj(SWIG_as_voidptr(new shared_ptr(information)), SWIGTYPE_p_boost__shared_ptrT_XdmfInformation_t, SWIG_POINTER_OWN); } diff --git a/tests/Python/CMakeLists.txt b/tests/Python/CMakeLists.txt index eed24e7fd63634be1309db2c8bf92eaa8b9c7498..bb77150d2b18dd4bb178ab8c6967618e414539a9 100644 --- a/tests/Python/CMakeLists.txt +++ b/tests/Python/CMakeLists.txt @@ -16,6 +16,7 @@ ADD_TEST_PYTHON_PYTHONPATH("") # ----------------------- ADD_TEST_PYTHON(TestXdmfEquals) ADD_TEST_PYTHON(TestXdmfHDF5Writer) +ADD_TEST_PYTHON(TestXdmfRead) ADD_TEST_PYTHON(TestXdmfSet) ADD_TEST_PYTHON(TestXdmfWriter) @@ -28,6 +29,8 @@ ADD_TEST_PYTHON(TestXdmfWriter) CLEAN_TEST_PYTHON(TestXdmfEquals) CLEAN_TEST_PYTHON(TestXdmfHDF5Writer hdf5WriterPythonTest.h5) +CLEAN_TEST_PYTHON(TestXdmfRead + TestXdmfRead.xmf) CLEAN_TEST_PYTHON(TestXdmfSet) CLEAN_TEST_PYTHON(TestXdmfWriter output.h5 diff --git a/tests/Python/TestXdmfRead.py b/tests/Python/TestXdmfRead.py new file mode 100644 index 0000000000000000000000000000000000000000..6c7ceb5454b60df8be2a77be6d55d216033ae52a --- /dev/null +++ b/tests/Python/TestXdmfRead.py @@ -0,0 +1,47 @@ +from Xdmf import * + +if __name__ == "__main__": + + fileName ="TestXdmfRead.xmf" + + # create a simple empty file + domain = XdmfDomain.New() + collection = XdmfGridCollection.New() + grid = XdmfUnstructuredGrid.New() + attribute1 = XdmfAttribute.New() + attribute2 = XdmfAttribute.New() + information = XdmfInformation.New() + + domain.insert(collection) + collection.insert(grid) + grid.insert(attribute1) + grid.insert(attribute2) + grid.insert(information) + + writer = XdmfWriter.New(fileName) + domain.accept(writer) + + # read file using XPaths and verify downcasts to appropriate XdmfItems + reader = XdmfReader.New() + + domain = reader.read(fileName, "/Xdmf/Domain") + assert(len(domain) == 1) + assert(isinstance(domain[0], XdmfDomain)) + + collection = reader.read(fileName, "/Xdmf/Domain/Grid") + assert(len(collection) == 1) + assert(isinstance(collection[0], XdmfGridCollection)) + + grid = reader.read(fileName, "/Xdmf/Domain/Grid/Grid") + assert(len(grid) == 1) + assert(isinstance(grid[0], XdmfUnstructuredGrid)) + + attributes = reader.read(fileName, "/Xdmf/Domain/Grid/Grid/Attribute") + assert(len(attributes) == 2) + assert(isinstance(attributes[0], XdmfAttribute)) + assert(isinstance(attributes[1], XdmfAttribute)) + + information = reader.read(fileName, "/Xdmf/Domain/Grid/Grid/Information") + assert(len(information) == 1) + assert(isinstance(information[0], XdmfInformation)) +