MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle / TEST

Function TEST

test/cpp/eager/data_structure_tests/eager_tensor_test.cc:33–89  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31} // namespace eager_test
32
33TEST(Tensor, Constructor) {
34 paddle::Tensor et1 = paddle::Tensor();
35 paddle::Tensor et2 = paddle::Tensor("et2");
36
37 PADDLE_ENFORCE_EQ(et1.defined(),
38 false,
39 common::errors::InvalidArgument("Tensor et1 should be "
40 "undefined."));
41 PADDLE_ENFORCE_EQ(et2.name(),
42 "et2",
43 common::errors::InvalidArgument("Tensor name should be "
44 "'et2'."));
45
46 phi::DenseTensorMeta meta =
47 phi::DenseTensorMeta(phi::DataType::FLOAT32, common::make_ddim({1, 2}));
48 std::shared_ptr<phi::DenseTensor> dt = std::make_shared<phi::DenseTensor>(
49 std::make_unique<paddle::experimental::DefaultAllocator>(phi::CPUPlace())
50 .get(),
51 meta);
52 auto* dt_ptr = dt->mutable_data<float>(phi::CPUPlace());
53 dt_ptr[0] = 5.0f;
54 dt_ptr[1] = 10.0f;
55 paddle::Tensor et3 = paddle::Tensor(dt);
56 auto* et3_ptr =
57 std::dynamic_pointer_cast<phi::DenseTensor>(et3.impl())->data<float>();
58 PADDLE_ENFORCE_EQ(et3_ptr[0],
59 5.0f,
60 common::errors::InvalidArgument("First element should be "
61 "5.0f."));
62 PADDLE_ENFORCE_EQ(et3_ptr[1],
63 10.0f,
64 common::errors::InvalidArgument("Second element should be "
65 "10.0f."));
66 // copy constructor
67 paddle::Tensor et4(et3);
68 auto* et4_ptr =
69 std::dynamic_pointer_cast<phi::DenseTensor>(et4.impl())->data<float>();
70 PADDLE_ENFORCE_EQ(et4_ptr[0],
71 5.0f,
72 common::errors::InvalidArgument("First element should be "
73 "5.0f."));
74 PADDLE_ENFORCE_EQ(et4_ptr[1],
75 10.0f,
76 common::errors::InvalidArgument("Second element should be "
77 "10.0f."));
78 paddle::Tensor et5(std::move(et4));
79 auto* et5_ptr =
80 std::dynamic_pointer_cast<phi::DenseTensor>(et5.impl())->data<float>();
81 PADDLE_ENFORCE_EQ(et5_ptr[0],
82 5.0f,
83 common::errors::InvalidArgument("First element should be "
84 "5.0f."));
85 PADDLE_ENFORCE_EQ(et5_ptr[1],
86 10.0f,
87 common::errors::InvalidArgument("Second element should be "
88 "10.0f."));
89}
90

Callers

nothing calls this directly

Calls 15

make_ddimFunction · 0.85
is_cpu_placeFunction · 0.85
GPUPlaceClass · 0.85
GetDataLayoutFunction · 0.85
SetDataLayoutFunction · 0.85
set_implMethod · 0.80
is_gpuMethod · 0.80
set_autograd_metaMethod · 0.80
get_autograd_metaMethod · 0.80
GetTensorBaseMethod · 0.80
copy_Method · 0.80
TensorClass · 0.50

Tested by

no test coverage detected