def test_basic_gufunc(self): gufb = GUFuncBuilder(guadd, "(x, y),(x, y)->(x, y)") gufb.add("void(int32[:,:], int32[:,:], int32[:,:])") ufunc = gufb.build_ufunc() a = numpy.arange(10, dtype="int32").reshape(2, 5) b = ufunc(a, a) self.assertTrue(numpy.all(a + a == b))
def test_gufunc_struct(self): gufb = GUFuncBuilder(guadd, "(x, y),(x, y)->(x, y)") gufb.add("void(complex64[:,:], complex64[:,:], complex64[:,:])") ufunc = gufb.build_ufunc() a = numpy.arange(10, dtype="complex64").reshape(2, 5) + 1j b = ufunc(a, a) self.assertTrue(numpy.all(a + a == b))
def test_gufunc_struct(self): gufb = GUFuncBuilder(guadd, "(x, y),(x, y)->(x, y)") cres = gufb.add("void(complex64[:,:], complex64[:,:], complex64[:,:])") self.assertFalse(cres.objectmode) ufunc = gufb.build_ufunc() a = np.arange(10, dtype="complex64").reshape(2, 5) + 1j b = ufunc(a, a) self.assertPreciseEqual(a + a, b)
def test_basic_gufunc(self): gufb = GUFuncBuilder(guadd, "(x, y),(x, y)->(x, y)") cres = gufb.add("void(int32[:,:], int32[:,:], int32[:,:])") self.assertFalse(cres.objectmode) ufunc = gufb.build_ufunc() a = numpy.arange(10, dtype="int32").reshape(2, 5) b = ufunc(a, a) self.assertTrue(numpy.all(a + a == b)) self.assertEqual(b.dtype, numpy.dtype('int32'))
def test_gufunc_struct_forceobj(self): gufb = GUFuncBuilder(guadd, "(x, y),(x, y)->(x, y)", targetoptions=dict(forceobj=True)) cres = gufb.add("void(complex64[:,:], complex64[:,:], complex64[:," ":])") self.assertTrue(cres.objectmode) ufunc = gufb.build_ufunc() a = np.arange(10, dtype="complex64").reshape(2, 5) + 1j b = ufunc(a, a) self.assertTrue(np.all(a + a == b)) self.assertEqual(b.dtype, np.dtype("complex64"))
def test_gufunc_struct_forceobj(self): gufb = GUFuncBuilder(guadd, "(x, y),(x, y)->(x, y)", targetoptions=dict(forceobj=True)) cres = gufb.add("void(complex64[:,:], complex64[:,:], complex64[:," ":])") self.assertTrue(cres.objectmode) ufunc = gufb.build_ufunc() a = numpy.arange(10, dtype="complex64").reshape(2, 5) + 1j b = ufunc(a, a) self.assertTrue(numpy.all(a + a == b)) self.assertEqual(b.dtype, numpy.dtype('complex64'))
def test_basic_gufunc(self): gufb = GUFuncBuilder(guadd, "(x, y),(x, y)->(x, y)") cres = gufb.add("void(int32[:,:], int32[:,:], int32[:,:])") self.assertFalse(cres.objectmode) ufunc = gufb.build_ufunc() a = numpy.arange(10, dtype="int32").reshape(2, 5) b = ufunc(a, a) self.assertTrue(numpy.all(a + a == b)) self.assertEqual(b.dtype, numpy.dtype('int32')) # Metadata self.assertEqual(ufunc.__name__, "guadd") self.assertIn("A generalized addition", ufunc.__doc__)