test_Matrix.cpp 970 字节
Newer Older
Y
Yu Yang 已提交
1 2 3 4 5
#include "PaddleCAPI.h"
#include "gtest/gtest.h"

TEST(CAPIMatrix, create) {
  PD_Matrix mat;
Y
Yu Yang 已提交
6
  ASSERT_EQ(kPD_NO_ERROR, PDMatCreate(&mat, 128, 32, false));
Y
Yu Yang 已提交
7 8 9 10 11
  std::vector<pd_real> sampleRow;
  sampleRow.resize(32);
  for (size_t i = 0; i < sampleRow.size(); ++i) {
    sampleRow[i] = 1.0 / (i + 1.0);
  }
Y
Yu Yang 已提交
12 13
  ASSERT_EQ(kPD_NO_ERROR, PDMatCopyToRow(mat, 0, sampleRow.data()));
  ASSERT_EQ(kPD_OUT_OF_RANGE, PDMatCopyToRow(mat, 128, sampleRow.data()));
Y
Yu Yang 已提交
14 15 16

  pd_real* arrayPtr;

Y
Yu Yang 已提交
17
  ASSERT_EQ(kPD_NO_ERROR, PDMatGetRow(mat, 0, &arrayPtr));
Y
Yu Yang 已提交
18 19 20 21 22
  for (size_t i = 0; i < sampleRow.size(); ++i) {
    ASSERT_NEAR(sampleRow[i], arrayPtr[i], 1e-5);
  }

  uint64_t height, width;
Y
Yu Yang 已提交
23
  ASSERT_EQ(kPD_NO_ERROR, PDMatGetShape(mat, &height, &width));
Y
Yu Yang 已提交
24 25
  ASSERT_EQ(128, height);
  ASSERT_EQ(32, width);
Y
Yu Yang 已提交
26
  ASSERT_EQ(kPD_NO_ERROR, PDMatDestroy(mat));
Y
Yu Yang 已提交
27 28 29 30
}

TEST(CAPIMatrix, createNone) {
  PD_Matrix mat;
Y
Yu Yang 已提交
31 32
  ASSERT_EQ(kPD_NO_ERROR, PDMatCreateNone(&mat));
  ASSERT_EQ(kPD_NO_ERROR, PDMatDestroy(mat));
Y
Yu Yang 已提交
33
}