コード例 #1
0
 def testStrictWeakOrder(self):
     """Use svtkVariantStrictWeakOrder to sort a list of svtkVariants"""
     original = [1, 2.5, svtk.svtkVariant(), "0", cedilla]
     ordered = [svtk.svtkVariant(), 1, 2.5, "0", cedilla]
     l = [svtk.svtkVariant(x) for x in original]
     s = [svtk.svtkVariant(x) for x in ordered]
     l.sort(key=svtk.svtkVariantStrictWeakOrderKey)
     self.assertEqual(l, s)
コード例 #2
0
 def testCompare(self):
     """Use comparison operators to sort a list of svtkVariants"""
     original = [1, 2.5, svtk.svtkVariant(), "0", cedilla]
     ordered = [svtk.svtkVariant(), "0", 1, 2.5, cedilla]
     l = [svtk.svtkVariant(x) for x in original]
     s = [svtk.svtkVariant(x) for x in ordered]
     l.sort()
     self.assertEqual(l, s)
コード例 #3
0
ファイル: TestPointers.py プロジェクト: hpcdgrie/sensei
 def testBoolPointer(self):
     v = svtk.svtkVariant("1")
     bp = [False]
     d = v.ToFloat(bp)
     self.assertEqual(bp, [True])
     v = svtk.svtkVariant("George")
     d = v.ToFloat(bp)
     self.assertEqual(bp, [False])
コード例 #4
0
 def testComparisonMethods(self):
     v1 = svtk.svtkVariant(10)
     v2 = svtk.svtkVariant("10")
     # compare without regards to type
     self.assertEqual(svtk.svtkVariantEqual(v1, v2), True)
     self.assertEqual(svtk.svtkVariantLessThan(v1, v2), False)
     # compare with different types being non-equivalent
     self.assertEqual(svtk.svtkVariantStrictEquality(v1, v2), False)
     if sys.hexversion >= 0x03000000:
         self.assertEqual(svtk.svtkVariantStrictWeakOrder(v1, v2), True)
     else:
         # for Python 2, it worked like the cmp() function
         self.assertEqual(svtk.svtkVariantStrictWeakOrder(v1, v2), -1)
コード例 #5
0
 def testObjectConstructor(self):
     """Construct from SVTK object"""
     o = svtk.svtkIntArray()
     v = svtk.svtkVariant(o)
     self.assertEqual(v.GetType(), svtk.SVTK_OBJECT)
     self.assertEqual(v.GetTypeAsString(), o.GetClassName())
     self.assertEqual(v.ToSVTKObject(), o)
コード例 #6
0
 def testConstructors(self):
     """Test overloaded constructors"""
     # resolve by number of arguments
     v = svtk.svtkVector3d(3, 4, 5)
     self.assertEqual((v[0], v[1], v[2]), (3, 4, 5))
     v = svtk.svtkVector3d(6)
     self.assertEqual((v[0], v[1], v[2]), (6, 6, 6))
     # resolve by argument type
     v = svtk.svtkVariant(3.0)
     self.assertEqual(v.GetType(), svtk.SVTK_DOUBLE)
     v = svtk.svtkVariant(1)
     self.assertEqual(v.GetType(), svtk.SVTK_INT)
     v = svtk.svtkVariant("hello")
     self.assertEqual(v.GetType(), svtk.SVTK_STRING)
     v = svtk.svtkVariant(svtk.svtkObject())
     self.assertEqual(v.GetType(), svtk.SVTK_OBJECT)
コード例 #7
0
 def testPassByValueReturnByReference(self):
     """Pass svtkVariant by value, return by reference"""
     a = svtk.svtkVariantArray()
     a.SetNumberOfValues(1)
     v = svtk.svtkVariant(1)
     a.SetValue(0, v)
     u = a.GetValue(0)
     self.assertEqual(u.ToInt(), v.ToInt())
     self.assertEqual(u.GetType(), v.GetType())
     self.assertEqual(u.IsValid(), v.IsValid())
コード例 #8
0
 def testPassByReferenceReturnByValue(self):
     """Pass svtkVariant by reference, return by value."""
     a = svtk.svtkArray.CreateArray(1, svtk.SVTK_INT)
     a.Resize(1,1)
     v = svtk.svtkVariant(1)
     a.SetVariantValue(0, 0, v)
     u = a.GetVariantValue(0, 0)
     self.assertEqual(u.ToInt(), v.ToInt())
     self.assertEqual(u.GetType(), v.GetType())
     self.assertEqual(u.IsValid(), v.IsValid())
コード例 #9
0
 def testArgumentConversion(self):
     """Test argument conversion via implicit constructors"""
     # automatic conversion to svtkVariant
     a = svtk.svtkVariantArray()
     a.InsertNextValue(2.5)
     a.InsertNextValue(svtk.svtkObject())
     self.assertEqual(a.GetValue(0), svtk.svtkVariant(2.5))
     self.assertEqual(a.GetValue(1).GetType(), svtk.SVTK_OBJECT)
     # same, but this one is via "const svtkVariant&" argument
     a = svtk.svtkDenseArray[float]()
     a.Resize(1)
     a.SetVariantValue(0, 2.5)
     self.assertEqual(a.GetVariantValue(0).ToDouble(), 2.5)
コード例 #10
0
 def testSparseArray(self):
     """Test svtkSparseArray template"""
     for t in (arrayTypes + arrayCodes):
         a = svtk.svtkSparseArray[t]()
         a.Resize(1)
         i = svtk.svtkArrayCoordinates(0)
         if t in ['bool', '?']:
             value = 0
             a.SetValue(i, value)
             result = a.GetValue(i)
             self.assertEqual(value, result)
         elif t in ['float32', 'float64', 'float', 'f', 'd']:
             value = 3.125
             a.SetValue(i, value)
             result = a.GetValue(i)
             self.assertEqual(value, result)
         elif t in ['char', 'c']:
             value = 'c'
             a.SetValue(i, value)
             result = a.GetValue(i)
             self.assertEqual(value, result)
         elif t in [str, 'str']:
             value = "hello"
             a.SetValue(i, value)
             result = a.GetValue(i)
             self.assertEqual(value, result)
         elif t in ['unicode']:
             value = francois
             a.SetValue(i, value)
             result = a.GetValue(i)
             self.assertEqual(value, result)
         elif t in ['svtkVariant', svtk.svtkVariant]:
             value = svtk.svtkVariant("world")
             a.SetValue(i, value)
             result = a.GetValue(i)
             self.assertEqual(value, result)
         else:
             value = 12
             a.SetValue(i, value)
             result = a.GetValue(i)
             self.assertEqual(value, result)
コード例 #11
0
    def testAutomaticArgConversion(self):
        """Automatic construction of variants to resolve args"""
        # use with one of svtkVariant's own constructors
        v = svtk.svtkVariant('10', svtk.SVTK_INT)
        self.assertEqual(v.ToInt(), 10)
        self.assertEqual(v.GetType(), svtk.SVTK_INT)

        # use with svtkVariantArray
        a = svtk.svtkVariantArray()
        i = a.InsertNextValue(10)
        v = a.GetValue(i)
        self.assertEqual(v.GetType(), svtk.SVTK_INT)
        self.assertEqual(v.ToInt(), 10)
        i = a.InsertNextValue(10.0)
        v = a.GetValue(i)
        self.assertEqual(v.GetType(), svtk.SVTK_DOUBLE)
        self.assertEqual(v.ToDouble(), 10.0)
        i = a.InsertNextValue('10')
        v = a.GetValue(i)
        self.assertEqual(v.GetType(), svtk.SVTK_STRING)
        self.assertEqual(v.ToString(), '10')
コード例 #12
0
    def testTwoArgConstructor(self):
        """Construct with a specific type"""
        # construct with conversion to int
        v = svtk.svtkVariant('10')
        u = svtk.svtkVariant(v, svtk.SVTK_INT)
        self.assertEqual(u.GetType(), svtk.SVTK_INT)
        self.assertEqual(v.ToInt(), u.ToInt())

        # construct with conversion to double
        v = svtk.svtkVariant(10)
        u = svtk.svtkVariant(v, svtk.SVTK_DOUBLE)
        self.assertEqual(u.GetType(), svtk.SVTK_DOUBLE)
        self.assertEqual(u.ToDouble(), 10.0)

        # failed conversion to svtkObject
        v = svtk.svtkVariant(10)
        u = svtk.svtkVariant(v, svtk.SVTK_OBJECT)
        self.assertEqual(u.IsValid(), False)
コード例 #13
0
 def testCopyConstructor(self):
     """Construct from another svtkVariant"""
     u = svtk.svtkVariant('test')
     v = svtk.svtkVariant(u)
     self.assertEqual(v.GetType(), svtk.SVTK_STRING)
     self.assertEqual(v.ToString(), u.ToString())
コード例 #14
0
 def testVariantExtract(self):
     """Use svtkVariantExtract"""
     l = [1, '2', cedilla, 4.0, svtk.svtkObject()]
     s = [svtk.svtkVariant(x) for x in l]
     m = [svtk.svtkVariantExtract(x) for x in s]
     self.assertEqual(l, m)
コード例 #15
0
    def testHash(self):
        """Use a variant as a dict key"""
        d = {}
        # doubles, ints, strings, all hash as strings
        d[svtk.svtkVariant(1.0)] = 'double'
        d[svtk.svtkVariant(1)] = 'int'
        self.assertEqual(d[svtk.svtkVariant('1')], 'int')

        # strings and unicode have the same hash
        d[svtk.svtkVariant('s').ToString()] = 'string'
        d[svtk.svtkVariant('s').ToUnicodeString()] = 'unicode'
        self.assertEqual(d[svtk.svtkVariant('s').ToString()], 'unicode')

        # every svtkObject is hashed by memory address
        o1 = svtk.svtkIntArray()
        o2 = svtk.svtkIntArray()
        d[svtk.svtkVariant(o1)] = 'svtkIntArray1'
        d[svtk.svtkVariant(o2)] = 'svtkIntArray2'
        self.assertEqual(d[svtk.svtkVariant(o1)], 'svtkIntArray1')
        self.assertEqual(d[svtk.svtkVariant(o2)], 'svtkIntArray2')

        # invalid variants all hash the same
        d[svtk.svtkVariant()] = 'invalid'
        self.assertEqual(d[svtk.svtkVariant()], 'invalid')
コード例 #16
0
 def testUnicodeConstructor(self):
     """Construct from unicode"""
     v = svtk.svtkVariant(cedilla)
     self.assertEqual(v.GetType(), svtk.SVTK_UNICODE_STRING)
     self.assertEqual(v.ToUnicodeString(), cedilla)
コード例 #17
0
 def testBytesConstructor(self):
     """Construct from bytes"""
     v = svtk.svtkVariant(b'hello')
     self.assertEqual(v.GetType(), svtk.SVTK_STRING)
     self.assertEqual(v.ToString(), 'hello')
コード例 #18
0
 def testFloatConstructor(self):
     """Construct from float"""
     v = svtk.svtkVariant(10.0)
     self.assertEqual(v.GetType(), svtk.SVTK_DOUBLE)
     self.assertEqual(v.ToDouble(), 10.0)
コード例 #19
0
 def testIntConstructor(self):
     """Construct from int"""
     v = svtk.svtkVariant(10)
     self.assertEqual(v.GetType(), svtk.SVTK_INT)
     self.assertEqual(v.ToInt(), 10)
コード例 #20
0
 def testDefaultConstructor(self):
     """Default constructor"""
     v = svtk.svtkVariant()
     self.assertEqual(v.IsValid(), False)
     self.assertEqual(v.GetType(), 0)