From 2a7e6eb907ef7fec2108174c0f519ba6de64eb9d Mon Sep 17 00:00:00 2001 From: youge325 Date: Sun, 25 Jan 2026 16:29:29 +0800 Subject: [PATCH 1/2] add TensorAccessor related tests --- test/TensorAccessorTest.cpp | 117 ++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 test/TensorAccessorTest.cpp diff --git a/test/TensorAccessorTest.cpp b/test/TensorAccessorTest.cpp new file mode 100644 index 0000000..5222f57 --- /dev/null +++ b/test/TensorAccessorTest.cpp @@ -0,0 +1,117 @@ +#include +#include +#include +#include +#include + +#include +#include + +#include "../src/file_manager.h" + +extern paddle_api_test::ThreadSafeParam g_custom_param; + +namespace at { +namespace test { + +using paddle_api_test::FileManerger; +using paddle_api_test::ThreadSafeParam; + +class TensorAccessorTest : public ::testing::Test { + protected: + void SetUp() override { + std::vector shape = {2, 3, 4}; + tensor = at::ones(shape, at::kFloat); + } + + at::Tensor tensor; +}; + +// 测试 packed_accessor32 +TEST_F(TensorAccessorTest, PackedAccessor32) { + auto file_name = g_custom_param.get(); + FileManerger file(file_name); + file.createFile(); + auto accessor = tensor.packed_accessor32(); + file << std::to_string(accessor.size(0)) << " "; + file << std::to_string(accessor.size(1)) << " "; + file << std::to_string(accessor.size(2)) << " "; + file << std::to_string(accessor[0][0][0]) << " "; + file << std::to_string(accessor[1][2][3]) << " "; + file.saveFile(); +} + +// 测试 packed_accessor64 +TEST_F(TensorAccessorTest, PackedAccessor64) { + auto file_name = g_custom_param.get(); + FileManerger file(file_name); + file.createFile(); + auto accessor = tensor.packed_accessor64(); + file << std::to_string(accessor.size(0)) << " "; + file << std::to_string(accessor.size(1)) << " "; + file << std::to_string(accessor.size(2)) << " "; + file << std::to_string(accessor[0][0][0]) << " "; + file << std::to_string(accessor[1][2][3]) << " "; + file.saveFile(); +} + +// 测试 generic_packed_accessor +TEST_F(TensorAccessorTest, GenericPackedAccessor) { + auto file_name = g_custom_param.get(); + FileManerger file(file_name); + file.createFile(); + auto accessor = tensor.generic_packed_accessor(); + file << std::to_string(accessor.size(0)) << " "; + file << std::to_string(accessor.size(1)) << " "; + file << std::to_string(accessor.size(2)) << " "; + file << std::to_string(accessor[0][0][0]) << " "; + file << std::to_string(accessor[1][2][3]) << " "; + file.saveFile(); +} + +// 测试 is_non_overlapping_and_dense +TEST_F(TensorAccessorTest, IsNonOverlappingAndDense) { + auto file_name = g_custom_param.get(); + FileManerger file(file_name); + file.createFile(); + file << std::to_string(tensor.is_non_overlapping_and_dense()) << " "; + + // 测试非连续的tensor + at::Tensor transposed = tensor.transpose(0, 2); + file << std::to_string(transposed.is_non_overlapping_and_dense()) << " "; + + // 测试连续化后的tensor + at::Tensor contiguous = transposed.contiguous(); + file << std::to_string(contiguous.is_non_overlapping_and_dense()) << " "; + file.saveFile(); +} + +// 测试 has_names +TEST_F(TensorAccessorTest, HasNames) { + auto file_name = g_custom_param.get(); + FileManerger file(file_name); + file.createFile(); + file << std::to_string(tensor.has_names()) << " "; + file.saveFile(); +} + +// 测试 print +TEST_F(TensorAccessorTest, Print) { + auto file_name = g_custom_param.get(); + FileManerger file(file_name); + file.createFile(); + + // 创建一个小的tensor用于print测试 + at::Tensor small_tensor = at::ones({2, 2}, at::kFloat); + + // print() 通常输出到标准输出,我们主要测试它不会崩溃 + // 并记录tensor的基本信息 + tensor.print(); + small_tensor.print(); + + file << std::to_string(1) << " "; // 如果执行到这里说明print()没有崩溃 + file.saveFile(); +} + +} // namespace test +} // namespace at From 992198b6fa283517f292e41e93aa2643cf3b62a0 Mon Sep 17 00:00:00 2001 From: youge325 Date: Sun, 25 Jan 2026 19:26:55 +0800 Subject: [PATCH 2/2] delete print() --- test/TensorAccessorTest.cpp | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/test/TensorAccessorTest.cpp b/test/TensorAccessorTest.cpp index 5222f57..b6f413d 100644 --- a/test/TensorAccessorTest.cpp +++ b/test/TensorAccessorTest.cpp @@ -95,23 +95,5 @@ TEST_F(TensorAccessorTest, HasNames) { file.saveFile(); } -// 测试 print -TEST_F(TensorAccessorTest, Print) { - auto file_name = g_custom_param.get(); - FileManerger file(file_name); - file.createFile(); - - // 创建一个小的tensor用于print测试 - at::Tensor small_tensor = at::ones({2, 2}, at::kFloat); - - // print() 通常输出到标准输出,我们主要测试它不会崩溃 - // 并记录tensor的基本信息 - tensor.print(); - small_tensor.print(); - - file << std::to_string(1) << " "; // 如果执行到这里说明print()没有崩溃 - file.saveFile(); -} - } // namespace test } // namespace at