File: TestSwigPointer.py

package info (click to toggle)
vtk7 7.1.1%2Bdfsg2-8
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 127,396 kB
  • sloc: cpp: 1,539,584; ansic: 124,382; python: 78,038; tcl: 47,013; xml: 8,142; yacc: 5,040; java: 4,439; perl: 3,132; lex: 1,926; sh: 1,500; makefile: 126; objc: 83
file content (43 lines) | stat: -rw-r--r-- 1,362 bytes parent folder | download | duplicates (12)
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
"""Test swig-style wrapped pointers

Created on Oct 2, 2014 by David Gobbi
"""

import sys
import vtk
from vtk.test import Testing

class TestSwigPointer(Testing.vtkTest):
    def testVoidPointer(self):
        a = vtk.vtkIntArray()
        a.SetNumberOfTuples(1)
        a.SetValue(0, 1)
        b = vtk.vtkIntArray()
        b.SetNumberOfTuples(1)
        b.SetValue(0, 2)
        ptr = a.GetVoidPointer(0)
        # check the format _0123456789abcdef_p_void
        self.assertEqual(ptr[0:1], "_")
        self.assertEqual(ptr[-7:], "_p_void")
        address = int(ptr[1:-7], 16)
        # check that we can use the pointer
        b.SetVoidArray(ptr, 1, 1)
        self.assertEqual(b.GetValue(0), 1)
        a.SetValue(0, 10)
        self.assertEqual(b.GetValue(0), 10)

    def testObjectPointer(self):
        a = vtk.vtkInformation()
        ptr = a.__this__
        # check the format _0123456789abcdef_p_vtkInformation
        self.assertEqual(ptr[0:1], "_")
        self.assertEqual(ptr[-17:], "_p_vtkInformation")
        address = int(ptr[1:-17], 16)
        # create a VTK object from the swig pointer
        b = vtk.vtkObject(ptr)
        self.assertEqual(b.GetClassName(), a.GetClassName())
        self.assertEqual(a.__this__, b.__this__)
        self.assertEqual(a, b)

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