@@ -44,6 +44,40 @@ TEST_F(TensorPtrTest, ScalarTensorOwningData) {
4444 EXPECT_EQ (tensor->const_data_ptr <float >()[0 ], 3 .14f );
4545}
4646
47+ TEST_F (TensorPtrTest, ScalarTensorSingleValueCreation) {
48+ auto tensor_float = make_tensor_ptr (3 .14f );
49+ EXPECT_EQ (tensor_float->dim (), 0 );
50+ EXPECT_EQ (tensor_float->numel (), 1 );
51+ EXPECT_EQ (tensor_float->sizes ().size (), 0 );
52+ EXPECT_EQ (tensor_float->strides ().size (), 0 );
53+ EXPECT_EQ (tensor_float->const_data_ptr <float >()[0 ], 3 .14f );
54+ EXPECT_EQ (tensor_float->scalar_type (), exec_aten::ScalarType::Float);
55+
56+ auto tensor_int32 = make_tensor_ptr (42 );
57+ EXPECT_EQ (tensor_int32->dim (), 0 );
58+ EXPECT_EQ (tensor_int32->numel (), 1 );
59+ EXPECT_EQ (tensor_int32->sizes ().size (), 0 );
60+ EXPECT_EQ (tensor_int32->strides ().size (), 0 );
61+ EXPECT_EQ (tensor_int32->const_data_ptr <int32_t >()[0 ], 42 );
62+ EXPECT_EQ (tensor_int32->scalar_type (), exec_aten::ScalarType::Int);
63+
64+ auto tensor_double = make_tensor_ptr (2.718 );
65+ EXPECT_EQ (tensor_double->dim (), 0 );
66+ EXPECT_EQ (tensor_double->numel (), 1 );
67+ EXPECT_EQ (tensor_double->sizes ().size (), 0 );
68+ EXPECT_EQ (tensor_double->strides ().size (), 0 );
69+ EXPECT_EQ (tensor_double->const_data_ptr <double >()[0 ], 2.718 );
70+ EXPECT_EQ (tensor_double->scalar_type (), exec_aten::ScalarType::Double);
71+
72+ auto tensor_int64 = make_tensor_ptr (static_cast <int64_t >(10000000000 ));
73+ EXPECT_EQ (tensor_int64->dim (), 0 );
74+ EXPECT_EQ (tensor_int64->numel (), 1 );
75+ EXPECT_EQ (tensor_int64->sizes ().size (), 0 );
76+ EXPECT_EQ (tensor_int64->strides ().size (), 0 );
77+ EXPECT_EQ (tensor_int64->const_data_ptr <int64_t >()[0 ], 10000000000 );
78+ EXPECT_EQ (tensor_int64->scalar_type (), exec_aten::ScalarType::Long);
79+ }
80+
4781TEST_F (TensorPtrTest, CreateTensorWithStridesAndDimOrder) {
4882 float data[20 ] = {2 };
4983 auto tensor = make_tensor_ptr (
@@ -299,12 +333,7 @@ TEST_F(TensorPtrTest, TensorSharingImplModifiesSharedDataVector) {
299333TEST_F (TensorPtrTest, TensorSharingImplResizingAffectsBothVector) {
300334 std::vector<float > data = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 };
301335
302- auto tensor1 = make_tensor_ptr (
303- {3 , 4 },
304- std::move (data),
305- {},
306- {},
307- exec_aten::TensorShapeDynamism::DYNAMIC_UNBOUND);
336+ auto tensor1 = make_tensor_ptr ({3 , 4 }, std::move (data));
308337 auto tensor2 = make_tensor_ptr (tensor1);
309338
310339 EXPECT_EQ (resize_tensor_ptr (tensor1, {2 , 6 }), Error::Ok);
0 commit comments