/trunk/Examples/test-suite/python/li_std_vector_extra_runme.py
Python | 176 lines | 116 code | 57 blank | 3 comment | 36 complexity | 65cd1e8a597272353274a2635c25219c MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- from li_std_vector_extra import *
- iv = IntVector(4)
- for i in range(0,4):
- iv[i] = i
- x = average(iv)
- y = average([1,2,3,4])
- a = half([10,10.5,11,11.5])
- dv = DoubleVector(10)
- for i in range(0,10):
- dv[i] = i/2.0
- halve_in_place(dv)
- bv = BoolVector(4)
- bv[0]= 1
- bv[1]= 0
- bv[2]= 4
- bv[3]= 0
- if bv[0] != bv[2]:
- raise RuntimeError,"bad std::vector<bool> mapping"
- b = B(5)
- va = VecA([b,None,b,b])
- if va[0].f(1) != 6:
- raise RuntimeError,"bad std::vector<A*> mapping"
- if vecAptr(va) != 6:
- raise RuntimeError,"bad std::vector<A*> mapping"
- b.val = 7
- if va[3].f(1) != 8:
- raise RuntimeError,"bad std::vector<A*> mapping"
- ip = PtrInt()
- ap = new_ArrInt(10)
- ArrInt_setitem(ip,0,123)
- ArrInt_setitem(ap,2,123)
- vi = IntPtrVector((ip,ap,None))
- if ArrInt_getitem(vi[0],0) != ArrInt_getitem(vi[1],2):
- raise RuntimeError,"bad std::vector<int*> mapping"
- delete_ArrInt(ap)
- a = halfs([10,8,4,3])
- v = IntVector()
- v[0:2] = [1,2]
- if v[0] != 1 or v[1] != 2:
- raise RuntimeError,"bad setslice"
- if v[0:-1][0] != 1:
- raise RuntimeError,"bad getslice"
- if v[0:-2].size() != 0:
- raise RuntimeError,"bad getslice"
- v[0:1] = [2]
- if v[0] != 2:
- raise RuntimeError,"bad setslice"
- v[1:] = [3]
- if v[1] != 3:
- raise RuntimeError,"bad setslice"
- v[2:] = [3]
- if v[2] != 3:
- raise RuntimeError,"bad setslice"
- if v[0:][0] != v[0]:
- raise RuntimeError,"bad getslice"
- del v[:]
- if v.size() != 0:
- raise RuntimeError,"bad getslice"
- del v[:]
- if v.size() != 0:
- raise RuntimeError,"bad getslice"
- v = vecStr(["hello ", "world"])
- if v[0] != 'hello world':
- raise RuntimeError,"bad std::string+std::vector"
-
- pv = pyvector([1, "hello", (1,2)])
- if pv[1] != "hello":
- raise RuntimeError
- iv = IntVector(5)
- for i in range(0,5):
- iv[i] = i
- iv[1:3] = []
- if iv[1] != 3:
- raise RuntimeError
- # Overloading checks
- if overloaded1(iv) != "vector<int>":
- raise RuntimeError
- if overloaded1(dv) != "vector<double>":
- raise RuntimeError
- if overloaded2(iv) != "vector<int>":
- raise RuntimeError
- if overloaded2(dv) != "vector<double>":
- raise RuntimeError
- if overloaded3(iv) != "vector<int> *":
- raise RuntimeError
- if overloaded3(None) != "vector<int> *":
- raise RuntimeError
- if overloaded3(100) != "int":
- raise RuntimeError
- # vector pointer checks
- ip = makeIntPtr(11)
- dp = makeDoublePtr(33.3)
- error = 0
- try:
- vi = IntPtrVector((ip, dp)) # check vector<int *> does not accept double * element
- error = 1
- except:
- pass
- if error:
- raise RuntimeError
- vi = IntPtrVector((ip, makeIntPtr(22)))
- if extractInt(vi[0]) != 11:
- raise RuntimeError
- if extractInt(vi[1]) != 22:
- raise RuntimeError
- # vector const pointer checks
- csp = makeConstShortPtr(111)
- error = 0
- try:
- vcs = ConstShortPtrVector((csp, dp)) # check vector<const unsigned short *> does not accept double * element
- error = 1
- except:
- pass
- if error:
- raise RuntimeError
- vcs = ConstShortPtrVector((csp, makeConstShortPtr(222)))
- if extractConstShort(vcs[0]) != 111:
- raise RuntimeError
- if extractConstShort(vcs[1]) != 222:
- raise RuntimeError