File: TestSOADataArrays.py

package info (click to toggle)
vtk9 9.5.2%2Bdfsg3-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 205,916 kB
  • sloc: cpp: 2,336,565; ansic: 327,116; python: 111,200; yacc: 4,104; java: 3,977; sh: 3,032; xml: 2,771; perl: 2,189; lex: 1,787; makefile: 178; javascript: 165; objc: 153; tcl: 59
file content (57 lines) | stat: -rwxr-xr-x 2,091 bytes parent folder | download | duplicates (6)
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
#!/usr/bin/env python

import array
import vtkmodules.vtkCommonCore
from vtkmodules.vtkCommonCore import vtkSOADataArrayTemplate

# types can be specified either with one of the strings listed below,
# or with a numpy dtype.  You can get a list of types by calling the
# method vtkSOADataArrayTemplate.keys().
types = ['char', 'int8', 'uint8', 'int16', 'uint16', 'int32', 'uint32',
         'int64', 'uint64', 'float32', 'float64']
formats = ['c', 'b', 'B', 'h', 'H', 'i', 'I', 'q', 'Q', 'f', 'd']

numarraytypes = 1
try:
    vtkScaledSOADataArrayTemplate = vtkmodules.vtkCommonCore.vtkScaledSOADataArrayTemplate
    numarraytypes = 2
except AttributeError:
    pass

for i in range(numarraytypes):
    for T in types:
        # instantiate the class for type T
        if i == 0:
            a = vtkSOADataArrayTemplate[T]()
        else:
            a = vtkScaledSOADataArrayTemplate[T]()
        a.SetNumberOfComponents(3)
        # do a simple set/get test
        a.SetNumberOfTuples(2)
        a.SetTuple(0, (1,2,3))
        assert a.GetTuple(0) == (1,2,3)
        # test the typed interface
        if T != 'char':
            a.SetTypedTuple(0, (3,4,6))
            t = [0,0,0]
            a.GetTypedTuple(0, t)
            assert t == [3,4,6]
            assert a.GetTypedComponent(0, 0) == 3
            assert a.GetTypedComponent(0, 1) == 4
            assert a.GetTypedComponent(0, 2) == 6
        # test SetArray for types compatible with 'array' module
        if T not in ('char', 'int64', 'uint64'):
            t = formats[types.index(T)]
            b1 = array.array(t, [10, 11, 12, 20])
            b2 = array.array(t, [14, 15, 16, 30])
            b3 = array.array(t, [17, 18, 19, 40])
            a.SetArray(0, b1, 4, True, True)
            a.SetArray(1, b2, 4, True, True)
            a.SetArray(2, b3, 4, True, True)
            assert a.GetNumberOfTuples() == 4
            assert a.GetTuple(0) == (10, 14, 17)
            assert a.GetTuple(1) == (11, 15, 18)
            assert a.GetTuple(2) == (12, 16, 19)
            assert a.GetTuple(3) == (20, 30, 40)

exit()