1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
from vtkmodules import vtkCommonCore as cc
from vtkmodules import vtkCommonDataModel as dm
from vtkmodules import vtkCommonExecutionModel as em
from vtkmodules import vtkImagingCore as ic
from vtkmodules.vtkIOParallelXML import vtkXMLPartitionedDataSetWriter
from vtkmodules.vtkIOXML import vtkXMLPartitionedDataSetReader
from vtkmodules.test import Testing
from vtkmodules.util.misc import vtkGetTempDir
import os
class TestXMLPartitionedDataSet(Testing.vtkTest):
def test(self):
p = dm.vtkPartitionedDataSet()
s = ic.vtkRTAnalyticSource()
s.SetWholeExtent(0, 10, 0, 10, 0, 5)
s.Update()
p1 = dm.vtkImageData()
p1.ShallowCopy(s.GetOutput())
s.SetWholeExtent(0, 10, 0, 10, 5, 10)
s.Update()
p2 = dm.vtkImageData()
p2.ShallowCopy(s.GetOutput())
p.SetPartition(0, p1)
p.SetPartition(1, p2)
tmpdir = vtkGetTempDir()
fname = tmpdir+"/testxmlpartds.vtpd"
w = vtkXMLPartitionedDataSetWriter()
w.SetInputData(p)
w.SetFileName(fname)
w.Write()
r = vtkXMLPartitionedDataSetReader()
r.SetFileName(fname)
r.Update()
o = r.GetOutputDataObject(0)
print(o.IsA("vtkPartitionedDataSet"))
np = o.GetNumberOfPartitions()
self.assertEqual(np, 2)
for i in range(np):
d = o.GetPartition(i)
d2 = p.GetPartition(i)
self.assertTrue(d.IsA("vtkImageData"))
self.assertEqual(d.GetNumberOfCells(), d2.GetNumberOfCells())
os.remove(fname)
if __name__ == "__main__":
Testing.main([(TestXMLPartitionedDataSet, 'test')])
|