/home/liu/actions-runner/_work/ccv/ccv/test/unit/nnc/pad.tests.c
Line | Count | Source |
1 | | #include "case.h" |
2 | | #include "ccv_case.h" |
3 | | #include "ccv_nnc_case.h" |
4 | | #include <ccv.h> |
5 | | #include <nnc/ccv_nnc.h> |
6 | | #include <nnc/ccv_nnc_easy.h> |
7 | | #include "3rdparty/dsfmt/dSFMT.h" |
8 | | |
9 | | TEST_SETUP() |
10 | | { |
11 | | ccv_nnc_init(); |
12 | | } |
13 | | |
14 | | TEST_CASE("implement pad zero") |
15 | 1 | { |
16 | 1 | ccv_nnc_tensor_t* const a = ccv_nnc_tensor_new(0, CPU_TENSOR_NHWC(32F, 2, 3), 0); |
17 | 1 | ccv_nnc_tensor_t* const b = ccv_nnc_tensor_new(0, CPU_TENSOR_NHWC(32F, 5, 4), 0); |
18 | 1 | a->data.f32[0] = 1; |
19 | 1 | a->data.f32[1] = 2; |
20 | 1 | a->data.f32[2] = 3; |
21 | 1 | a->data.f32[3] = 4; |
22 | 1 | a->data.f32[4] = 5; |
23 | 1 | a->data.f32[5] = 6; |
24 | 1 | ccv_nnc_cmd_exec(CMD_PAD_FORWARD(CCV_NNC_PAD_ZERO, (2, 1), (1, 0)), ccv_nnc_no_hint, 0, TENSOR_LIST(a), TENSOR_LIST(b), 0); |
25 | 1 | float btp[] = { |
26 | 1 | 0, 0, 0, 0, |
27 | 1 | 0, 0, 0, 0, |
28 | 1 | 0, 1, 2, 3, |
29 | 1 | 0, 4, 5, 6, |
30 | 1 | 0, 0, 0, 0, |
31 | 1 | }; |
32 | 1 | ccv_nnc_tensor_t bt = ccv_nnc_tensor(btp, CPU_TENSOR_NHWC(32F, 5, 4), 0); |
33 | 1 | REQUIRE_TENSOR_EQ(b, &bt, "result should be equal"); |
34 | 1 | ccv_nnc_tensor_free(a); |
35 | 1 | ccv_nnc_tensor_free(b); |
36 | 1 | } |
37 | | |
38 | | TEST_CASE("implement pad replicate") |
39 | 1 | { |
40 | 1 | ccv_nnc_tensor_t* const a = ccv_nnc_tensor_new(0, CPU_TENSOR_NHWC(32F, 2, 3), 0); |
41 | 1 | ccv_nnc_tensor_t* const b = ccv_nnc_tensor_new(0, CPU_TENSOR_NHWC(32F, 5, 5), 0); |
42 | 1 | a->data.f32[0] = 1; |
43 | 1 | a->data.f32[1] = 2; |
44 | 1 | a->data.f32[2] = 3; |
45 | 1 | a->data.f32[3] = 4; |
46 | 1 | a->data.f32[4] = 5; |
47 | 1 | a->data.f32[5] = 6; |
48 | 1 | ccv_nnc_cmd_exec(CMD_PAD_FORWARD(CCV_NNC_PAD_REPLICATE, (2, 1), (1, 1)), ccv_nnc_no_hint, 0, TENSOR_LIST(a), TENSOR_LIST(b), 0); |
49 | 1 | float btp[] = { |
50 | 1 | 1, 1, 2, 3, 3, |
51 | 1 | 1, 1, 2, 3, 3, |
52 | 1 | 1, 1, 2, 3, 3, |
53 | 1 | 4, 4, 5, 6, 6, |
54 | 1 | 4, 4, 5, 6, 6, |
55 | 1 | }; |
56 | 1 | ccv_nnc_tensor_t bt = ccv_nnc_tensor(btp, CPU_TENSOR_NHWC(32F, 5, 5), 0); |
57 | 1 | REQUIRE_TENSOR_EQ(b, &bt, "result should be equal"); |
58 | 1 | ccv_nnc_tensor_free(a); |
59 | 1 | ccv_nnc_tensor_free(b); |
60 | 1 | } |
61 | | |
62 | | #include "case_main.h" |