File: TestArrayArguments.py

package info (click to toggle)
vtk6 6.3.0%2Bdfsg2-8.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 118,972 kB
  • sloc: cpp: 1,442,790; ansic: 113,395; python: 72,383; tcl: 46,998; xml: 8,119; yacc: 4,525; java: 4,239; perl: 3,108; lex: 1,694; sh: 1,093; asm: 154; makefile: 68; objc: 17
file content (99 lines) | stat: -rw-r--r-- 2,849 bytes parent folder | download | duplicates (7)
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
87
88
89
90
91
92
93
94
95
96
97
98
99
"""Test passing arguments of various types

Created on Sept 19, 2010 by David Gobbi
"""

import sys
import vtk
from vtk.test import Testing

arrays = [
  vtk.vtkFloatArray,
  vtk.vtkDoubleArray,
  vtk.vtkSignedCharArray,
  vtk.vtkShortArray,
  vtk.vtkIntArray,
  vtk.vtkLongArray,
  vtk.vtkTypeInt64Array,
  vtk.vtkIdTypeArray,
]

unsignedArrays = [
  vtk.vtkUnsignedCharArray,
  vtk.vtkUnsignedShortArray,
  vtk.vtkUnsignedIntArray,
  vtk.vtkUnsignedLongArray,
  vtk.vtkTypeUInt64Array,
]

class TestArrayArguments(Testing.vtkTest):
    def testArrayArguments(self):
        for arrayClass in arrays:
            a = arrayClass()
            a.SetNumberOfComponents(3)
            a.SetNumberOfTuples(1)
            ti = [0, a.GetDataTypeValueMin(), a.GetDataTypeValueMax()]
            to = [0, 0, 0]
            a.SetTupleValue(0, ti)
            a.GetTupleValue(0, to);
            self.assertEqual(ti, to)
            d1 = a.GetTuple(0)
            d2 = map(float, ti)
            self.assertEqual(map(round, d1), map(round, d2))

    def testUnsignedArrayArguments(self):
        for arrayClass in unsignedArrays:
            a = arrayClass()
            a.SetNumberOfComponents(3)
            a.SetNumberOfTuples(1)
            ti = [0, a.GetDataTypeValueMin(), a.GetDataTypeValueMax()]
            to = [0, 0, 0]
            a.SetTupleValue(0, ti)
            a.GetTupleValue(0, to);
            self.assertEqual(ti, to)
            d1 = a.GetTuple(0)
            d2 = map(float, ti)
            self.assertEqual(map(round, d1), map(round, d2))

    def testCharArrayArguments(self):
        a = vtk.vtkCharArray()
        a.SetNumberOfComponents(3)
        a.SetNumberOfTuples(1)
        ti = "opn"
        a.SetTupleValue(0, ti)
        # python strings are immutable, so this should NOT work
        #to = "***"
        #a.GetTupleValue(0, to);
        d1 = list(a.GetTuple(0))
        d2 = map(float, map(ord, ti))
        self.assertEqual(d1, d2)

    def testBitArrayArguments(self):
        a = vtk.vtkBitArray()
        a.SetNumberOfComponents(2)
        a.SetNumberOfTuples(1)
        ti = [0,1]
        to = [0,0]
        a.SetTuple(0, ti)
        a.GetTuple(0, to);
        self.assertEqual(ti, map(int,to))

    def testNDimArrayArguments(self):
        a = [[0,0,0],[0,0,0],[0,0,0]]
        vtk.vtkMath.Identity3x3(a)
        x = [0.5, 0.2, 0.1]
        y = [0.0, 0.0, 0.0]
        vtk.vtkMath.Multiply3x3(a, x, y)
        self.assertEqual(x, y)

    def testInformationVectorKeys(self):
        a = vtk.vtkImageGridSource()
        spacing = (3.0, 2.0, 1.0)
        a.SetDataSpacing(spacing)
        a.UpdateInformation()
        info = a.GetOutputInformation(0)
        t = info.Get(vtk.vtkDataObject.SPACING())
        self.assertEqual(t, spacing)

if __name__ == "__main__":
    Testing.main([(TestArrayArguments, 'test')])