def check_distribution(self, dist_func, dfnum_dtype, dfden_dtype): dfnum = cupy.ones(self.dfnum_shape, dtype=dfnum_dtype) dfden = cupy.ones(self.dfden_shape, dtype=dfden_dtype) out = dist_func(dfnum, dfden, self.shape) self.assertEqual(self.shape, out.shape) # numpy and dpdp output dtype is float64 self.assertEqual(out.dtype, numpy.float64)
def check_distribution(self, dist_func, shape_dtype, scale_dtype): shape = cupy.ones(self.shape_shape, dtype=shape_dtype) scale = cupy.ones(self.scale_shape, dtype=scale_dtype) out = dist_func(shape, scale, self.shape) self.assertEqual(self.shape, out.shape) # numpy and dpdp output dtype is float64 self.assertEqual(out.dtype, numpy.float64)
def check_distribution(self, dist_func, mu_dtype, kappa_dtype): mu = cupy.ones(self.mu_shape, dtype=mu_dtype) kappa = cupy.ones(self.kappa_shape, dtype=kappa_dtype) out = dist_func(mu, kappa, self.shape) self.assertEqual(self.shape, out.shape) # numpy and dpdp output dtype is float64 self.assertEqual(out.dtype, numpy.float64)
def check_distribution(self, dist_func, ngood_dtype, nbad_dtype, nsample_dtype, dtype): ngood = cupy.ones(self.ngood_shape, dtype=ngood_dtype) nbad = cupy.ones(self.nbad_shape, dtype=nbad_dtype) nsample = cupy.ones(self.nsample_shape, dtype=nsample_dtype) out = dist_func(ngood, nbad, nsample, self.shape, dtype) self.assertEqual(self.shape, out.shape) self.assertEqual(out.dtype, dtype)
def check_distribution(self, dist_func, ngood_dtype, nbad_dtype, nsample_dtype): ngood = cupy.ones(self.ngood_shape, dtype=ngood_dtype) nbad = cupy.ones(self.nbad_shape, dtype=nbad_dtype) nsample = cupy.ones(self.nsample_shape, dtype=nsample_dtype) out = dist_func(ngood, nbad, nsample, self.shape) self.assertEqual(self.shape, out.shape) # numpy output dtype is int64, dpnp output is int32 self.assertEqual(out.dtype, numpy.int64)
def test_mode(self): d = dpnp.ones(100) k = dpnp.ones(3) default_mode = dpnp.convolve(d, k, mode='full') full_mode = dpnp.convolve(d, k, mode='f') numpy.testing.assert_array_equal(full_mode, default_mode) # integer mode with numpy.testing.assert_raises(ValueError): dpnp.convolve(d, k, mode=-1) numpy.testing.assert_array_equal(dpnp.convolve(d, k, mode=2), full_mode) # illegal arguments with numpy.testing.assert_raises(TypeError): dpnp.convolve(d, k, mode=None)
def test_multiply_scalar2(shape, dtype): a = numpy.ones(shape, dtype=dtype) ia = inp.ones(shape, dtype=dtype) result = 0.5 * ia expected = 0.5 * a numpy.testing.assert_array_equal(result, expected)
def test_logseries_for_invalid_p(self, p_dtype, dtype): with self.assertRaises(ValueError): cp_params = {'p': cupy.zeros(self.p_shape, dtype=p_dtype)} _distributions.logseries(size=self.shape, dtype=dtype, **cp_params) with self.assertRaises(ValueError): cp_params = {'p': cupy.ones(self.p_shape, dtype=p_dtype)} _distributions.logseries(size=self.shape, dtype=dtype, **cp_params)
def test_multiply_scalar2(shape, dtype): np_a = numpy.ones(shape, dtype=dtype) dpnp_a = dpnp.ones(shape, dtype=dtype) result = 0.5 * dpnp_a expected = 0.5 * np_a numpy.testing.assert_array_equal(result, expected)
def test_histogram_weights_basic(self): v = cupy.random.rand(100) w = cupy.ones(100) * 5 a, b = cupy.histogram(v) na, nb = cupy.histogram(v, density=True) wa, wb = cupy.histogram(v, weights=w) nwa, nwb = cupy.histogram(v, weights=w, density=True) testing.assert_array_almost_equal(a * 5, wa) testing.assert_array_almost_equal(na, nwa)
def test_cumprod_huge_array(self): size = 2**32 # Free huge memory for slow test cupy.get_default_memory_pool().free_all_blocks() a = cupy.ones(size, 'b') result = cupy.cumprod(a, dtype='b') del a self.assertTrue((result == 1).all()) # Free huge memory for slow test del result cupy.get_default_memory_pool().free_all_blocks()
def test_no_overwrite(self): d = dpnp.ones(100) k = dpnp.ones(3) dpnp.convolve(d, k) numpy.testing.assert_array_equal(d, dpnp.ones(100)) numpy.testing.assert_array_equal(k, dpnp.ones(3))
def check_distribution(self, dist_func, mu_dtype, kappa_dtype, dtype): mu = cupy.ones(self.mu_shape, dtype=mu_dtype) kappa = cupy.ones(self.kappa_shape, dtype=kappa_dtype) out = dist_func(mu, kappa, self.shape, dtype) self.assertEqual(self.shape, out.shape) self.assertEqual(out.dtype, dtype)
def check_distribution(self, dist_func, df_dtype, dtype): df = cupy.ones(self.df_shape, dtype=df_dtype) out = dist_func(df, self.shape, dtype) self.assertEqual(self.shape, out.shape) self.assertEqual(out.dtype, dtype)
def check_distribution(self, dist_func, a_dtype, dtype): a = cupy.ones(self.a_shape, dtype=a_dtype) out = dist_func(a, self.shape, dtype) self.assertEqual(self.shape, out.shape) self.assertEqual(out.dtype, dtype)
def check_distribution(self, dist_func, p_dtype, dtype): p = 0.5 * cupy.ones(self.p_shape, dtype=p_dtype) out = dist_func(p, self.shape, dtype) self.assertEqual(self.shape, out.shape) self.assertEqual(out.dtype, dtype)
def check_distribution(self, dist_func, a_dtype): a = cupy.ones(self.a_shape, dtype=a_dtype) out = dist_func(a, self.shape) self.assertEqual(self.shape, out.shape) # numpy and dpdp output dtype is float64 self.assertEqual(out.dtype, numpy.float64)
def test_real_inplace(self, dtype): x = cupy.zeros((2, 3), dtype=dtype) x.real[:] = 1 expected = cupy.ones((2, 3), dtype=dtype) assert cupy.all(x == expected)
def check_distribution(self, dist_func, p_dtype): p = 0.5 * cupy.ones(self.p_shape, dtype=p_dtype) out = dist_func(p, self.shape) self.assertEqual(self.shape, out.shape) # numpy output dtype is int64, dpnp output is int32 self.assertEqual(out.dtype, numpy.int64)
def check_distribution(self, dist_func, dfnum_dtype, dfden_dtype, dtype): dfnum = cupy.ones(self.dfnum_shape, dtype=dfnum_dtype) dfden = cupy.ones(self.dfden_shape, dtype=dfden_dtype) out = dist_func(dfnum, dfden, self.shape, dtype) self.assertEqual(self.shape, out.shape) self.assertEqual(out.dtype, dtype)
def check_distribution(self, dist_func, shape_dtype, scale_dtype, dtype): shape = cupy.ones(self.shape_shape, dtype=shape_dtype) scale = cupy.ones(self.scale_shape, dtype=scale_dtype) out = dist_func(shape, scale, self.shape, dtype) self.assertEqual(self.shape, out.shape) self.assertEqual(out.dtype, dtype)
b = T * mr z = T * sig_sig_two c = 0.25 * z y = 1./np.sqrt(z) w1 = (a - b + c) * y w2 = (a - b - c) * y d1 = 0.5 + 0.5 * np.erf(w1) d2 = 0.5 + 0.5 * np.erf(w2) Se = np.exp(b) * S r = P * d1 - Se * d2 call[:] = r # temporary `r` is necessary for faster `put` computation put[:] = r - P + Se np.random.seed(SEED) price = np.random.uniform(PL, PH, SIZE) strike = np.random.uniform(SL, SH, SIZE) t = np.random.uniform(TL, TH, SIZE) call = np.zeros(SIZE, dtype=DTYPE) put = -np.ones(SIZE, dtype=DTYPE) black_scholes(price, strike, t, RISK_FREE, VOLATILITY, call, put) print(call[:10]) print(put[:10])
def test_ones_like_reshape_cupy_only(self, dtype): a = testing.shaped_arange((2, 3, 4), cupy, dtype) b = cupy.ones_like(a, shape=self.shape) c = cupy.ones(self.shape, dtype=dtype) testing.assert_array_equal(b, c)