Example #1
0
 def test_strided_scalar_assign(self):
     # Make a CKernel that assigns fixed-size strings to float32
     ck = CKernel(UnaryStridedOperation)
     _lowlevel.make_assignment_kernel(
                     ndt.float32, ndt.type('string(15,"A")'), 'strided',
                     ctypes.addressof(ck.dynamic_kernel_instance))
     # Do an assignment using a numpy array
     src = np.array(['3.25', '-1000', '1e5'], dtype='S15')
     dst = np.arange(3, dtype=np.float32)
     ck(dst.ctypes.data, 4, src.ctypes.data, 15, 3)
     self.assertEqual(dst.tolist(), [3.25, -1000, 1e5])
Example #2
0
 def test_single_scalar_assign(self):
     # Make a CKernel that assigns one int64 to one float32
     ck = CKernel(UnarySingleOperation)
     _lowlevel.make_assignment_kernel(
                     ndt.float32, ndt.int64, 'single',
                     ctypes.addressof(ck.dynamic_kernel_instance))
     # Do an assignment using ctypes
     i64 = ctypes.c_int64(1234)
     f32 = ctypes.c_float(1)
     ck(ctypes.addressof(f32), ctypes.addressof(i64))
     self.assertEqual(f32.value, 1234.0)
 def setUp(self):
     # Get a kernel from dynd
     self.ck = CKernel(UnarySingleOperation)
     _lowlevel.make_assignment_kernel(
                     ndt.float32, ndt.int64, 'single',
                     ctypes.addressof(self.ck.dynamic_kernel_instance))