Coverage Report

Created: 2025-02-24 17:43

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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"