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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
""" Tests if vtkEnsembleSource works properly. """
import vtk
from vtk.test import Testing
class TestEnsemble(Testing.vtkTest):
resolutions = [4, 8, 16, 32]
npolys = [5, 9, 17, 33]
def createSource(self):
r = vtk.vtkEnsembleSource()
aColumn = vtk.vtkIntArray()
aColumn.SetName("Resolution")
nrows = len(TestEnsemble.resolutions)
for res in TestEnsemble.resolutions:
aColumn.InsertNextValue(res)
table = vtk.vtkTable()
table.SetNumberOfRows(nrows)
table.GetRowData().AddArray(aColumn)
r.SetMetaData(table)
for res in TestEnsemble.resolutions:
c = vtk.vtkConeSource()
c.SetResolution(res)
r.AddMember(c)
return r
def test1(self):
r = self.createSource()
for i in range(len(TestEnsemble.resolutions)):
r.SetCurrentMember(i)
r.Update()
self.assertEqual(r.GetOutputDataObject(0).GetNumberOfCells(), TestEnsemble.npolys[i])
def test2(self):
global nExecutions
r = self.createSource()
nExecutions = 0
def addToCounter(obj, event):
global nExecutions
nExecutions += 1
r.AddObserver('StartEvent', addToCounter)
shrink = vtk.vtkShrinkPolyData()
shrink.SetInputConnection(r.GetOutputPort())
shrink.UpdateInformation()
self.assertTrue(shrink.GetOutputInformation(0).Has(vtk.vtkEnsembleSource.META_DATA()))
metaData = shrink.GetOutputInformation(0).Has(vtk.vtkEnsembleSource.META_DATA())
shrink.Update()
oInfo = shrink.GetOutputInformation(0)
oInfo.Set(vtk.vtkEnsembleSource.UPDATE_MEMBER(), 2)
shrink.Update()
output = shrink.GetOutputDataObject(0)
self.assertEquals(output.GetNumberOfCells(), TestEnsemble.npolys[2])
shrink.Update()
oInfo = shrink.GetOutputInformation(0)
oInfo.Set(vtk.vtkEnsembleSource.UPDATE_MEMBER(), 1)
shrink.Update()
self.assertEquals(output.GetNumberOfCells(), TestEnsemble.npolys[1])
shrink2 = vtk.vtkShrinkPolyData()
shrink2.SetInputConnection(r.GetOutputPort())
shrink2.Update()
output2 = shrink2.GetOutputDataObject(0)
self.assertEquals(output.GetNumberOfCells(), TestEnsemble.npolys[1])
self.assertEquals(nExecutions, 3)
if __name__ == "__main__":
Testing.main([(TestEnsemble, 'test')])
|