MCPcopy Create free account
hub / github.com/aguinet/dragonffi / test_mdarray

Method test_mdarray

bindings/python/tests/test_mdarray.py:22–54  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

20
21class MDArrayTest(DFFITest):
22 def test_mdarray(self):
23 N = 10
24 FFI = self.FFI
25 ArTy = FFI.arrayType(FFI.DoubleTy, N)
26 Ar = ArTy()
27 for i in range(len(Ar)):
28 Ar[i] = i
29 Ref = [float(i) for i in range(len(Ar))]
30 self.assertEqual(list(Ar), Ref)
31 ArV = memoryview(Ar)
32 self.assertEqual(ArV.format, "d")
33 def upck_double(v):
34 if isinstance(v,float):
35 return v
36 return struct.unpack("d",v)[0]
37 self.assertTrue(all(upck_double(a) == b for a,b in zip(ArV,Ref)))
38
39 Ar2Ty = FFI.arrayType(FFI.arrayType(FFI.DoubleTy, 10), 2)
40 Ar = Ar2Ty()
41 ArV = memoryview(Ar)
42 self.assertEqual(ArV.format, "d")
43 self.assertEqual(ArV.ndim, 2)
44 self.assertEqual(ArV.shape, (2,10))
45 self.assertEqual(ArV.strides, (80,8))
46
47 try:
48 import numpy as np
49 except ImportError:
50 return
51
52 ar = np.ndarray(N)
53 car = pydffi.view_as(ArTy, ar)
54 self.assertTrue(all(a == b for a,b in zip(ar,car)))
55
56if __name__ == '__main__':
57 unittest.main()

Callers

nothing calls this directly

Calls 3

lenFunction · 0.85
listClass · 0.85
memoryviewClass · 0.85

Tested by

no test coverage detected