Skip to content

Commit 75375c3

Browse files
TEST: added tests for backend random (#504)
* TEST: added tests for backend random * normal + style
1 parent 809d53f commit 75375c3

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

dpnp/backend/tests/test_random.cpp

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
#include <dpnp_iface.hpp>
2+
3+
#include <vector>
4+
5+
#include "gtest/gtest.h"
6+
7+
TEST (TestBackendRandomBeta, test_seed) {
8+
const size_t size = 256;
9+
size_t seed = 10;
10+
double a = 0.4;
11+
double b = 0.5;
12+
13+
auto QueueOptionsDevices = std::vector<QueueOptions>{ QueueOptions::CPU_SELECTOR,
14+
QueueOptions::GPU_SELECTOR };
15+
16+
for (auto device_selector : QueueOptionsDevices) {
17+
dpnp_queue_initialize_c(device_selector);
18+
double* result1 = (double*)dpnp_memory_alloc_c(size * sizeof(double));
19+
double* result2 = (double*)dpnp_memory_alloc_c(size * sizeof(double));
20+
21+
dpnp_srand_c(seed);
22+
dpnp_rng_beta_c<double>(result1, a, b, size);
23+
24+
dpnp_srand_c(seed);
25+
dpnp_rng_beta_c<double>(result2, a, b, size);
26+
27+
for (size_t i = 0; i < size; ++i)
28+
{
29+
EXPECT_NEAR (result1[i], result2[i], 0.004);
30+
}
31+
}
32+
}
33+
34+
TEST (TestBackendRandomNormal, test_seed) {
35+
const size_t size = 256;
36+
size_t seed = 10;
37+
double loc = 2.56;
38+
double scale = 0.8;
39+
40+
auto QueueOptionsDevices = std::vector<QueueOptions>{ QueueOptions::CPU_SELECTOR,
41+
QueueOptions::GPU_SELECTOR };
42+
43+
for (auto device_selector : QueueOptionsDevices) {
44+
dpnp_queue_initialize_c(device_selector);
45+
double* result1 = (double*)dpnp_memory_alloc_c(size * sizeof(double));
46+
double* result2 = (double*)dpnp_memory_alloc_c(size * sizeof(double));
47+
48+
dpnp_srand_c(seed);
49+
dpnp_rng_normal_c<double>(result1, loc, scale, size);
50+
51+
dpnp_srand_c(seed);
52+
dpnp_rng_normal_c<double>(result2, loc, scale, size);
53+
54+
for (size_t i = 0; i < size; ++i)
55+
{
56+
EXPECT_NEAR (result1[i], result2[i], 0.004);
57+
}
58+
}
59+
}
60+
61+
TEST (TestBackendRandomUniform, test_seed) {
62+
const size_t size = 256;
63+
size_t seed = 10;
64+
long low = 1;
65+
long high = 120;
66+
67+
auto QueueOptionsDevices = std::vector<QueueOptions>{ QueueOptions::CPU_SELECTOR,
68+
QueueOptions::GPU_SELECTOR };
69+
70+
for (auto device_selector : QueueOptionsDevices) {
71+
dpnp_queue_initialize_c(device_selector);
72+
double* result1 = (double*)dpnp_memory_alloc_c(size * sizeof(double));
73+
double* result2 = (double*)dpnp_memory_alloc_c(size * sizeof(double));
74+
75+
dpnp_srand_c(seed);
76+
dpnp_rng_uniform_c<double>(result1, low, high, size);
77+
78+
dpnp_srand_c(seed);
79+
dpnp_rng_uniform_c<double>(result2, low, high, size);
80+
81+
for (size_t i = 0; i < size; ++i)
82+
{
83+
EXPECT_NEAR (result1[i], result2[i], 0.004);
84+
}
85+
}
86+
}
87+
88+
int main(int argc, char **argv) {
89+
::testing::InitGoogleTest(&argc, argv);
90+
return RUN_ALL_TESTS();
91+
}

0 commit comments

Comments
 (0)