(self)
| 20 | |
| 21 | class 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 | |
| 56 | if __name__ == '__main__': |
| 57 | unittest.main() |
nothing calls this directly
no test coverage detected