@@ -315,3 +315,138 @@ TEST_F(TensorPtrTest, TensorSharingImplResizingAffectsBothVector) {
315315 EXPECT_EQ (tensor1->size (0 ), 4 );
316316 EXPECT_EQ (tensor1->size (1 ), 3 );
317317}
318+
319+ TEST_F (TensorPtrTest, MakeTensorPtrFromExistingTensorInt32) {
320+ std::vector<int32_t > data = {1 , 2 , 3 , 4 };
321+ auto tensor = make_tensor_ptr ({2 , 2 }, data);
322+ auto new_tensor = make_tensor_ptr (*tensor);
323+
324+ EXPECT_EQ (new_tensor->dim (), tensor->dim ());
325+ EXPECT_EQ (new_tensor->size (0 ), tensor->size (0 ));
326+ EXPECT_EQ (new_tensor->size (1 ), tensor->size (1 ));
327+ EXPECT_EQ (
328+ new_tensor->const_data_ptr <int32_t >(), tensor->const_data_ptr <int32_t >());
329+ EXPECT_EQ (new_tensor->scalar_type (), exec_aten::ScalarType::Int);
330+ }
331+
332+ TEST_F (TensorPtrTest, CloneTensorPtrFromExistingTensorInt32) {
333+ std::vector<int32_t > data = {1 , 2 , 3 , 4 };
334+ auto tensor = make_tensor_ptr ({2 , 2 }, std::move (data));
335+ auto cloned_tensor = clone_tensor_ptr (*tensor);
336+
337+ EXPECT_EQ (cloned_tensor->dim (), tensor->dim ());
338+ EXPECT_EQ (cloned_tensor->size (0 ), tensor->size (0 ));
339+ EXPECT_EQ (cloned_tensor->size (1 ), tensor->size (1 ));
340+ EXPECT_NE (
341+ cloned_tensor->const_data_ptr <int32_t >(),
342+ tensor->const_data_ptr <int32_t >());
343+ EXPECT_EQ (cloned_tensor->const_data_ptr <int32_t >()[0 ], 1 );
344+ EXPECT_EQ (cloned_tensor->const_data_ptr <int32_t >()[3 ], 4 );
345+ EXPECT_EQ (cloned_tensor->scalar_type (), exec_aten::ScalarType::Int);
346+ }
347+
348+ TEST_F (TensorPtrTest, CloneTensorPtrFromTensorPtrInt32) {
349+ std::vector<int32_t > data = {1 , 2 , 3 , 4 };
350+ auto tensor = make_tensor_ptr ({2 , 2 }, std::move (data));
351+ auto cloned_tensor = clone_tensor_ptr (tensor);
352+
353+ EXPECT_EQ (cloned_tensor->dim (), tensor->dim ());
354+ EXPECT_EQ (cloned_tensor->size (0 ), tensor->size (0 ));
355+ EXPECT_EQ (cloned_tensor->size (1 ), tensor->size (1 ));
356+ EXPECT_NE (
357+ cloned_tensor->const_data_ptr <int32_t >(),
358+ tensor->const_data_ptr <int32_t >());
359+ EXPECT_EQ (cloned_tensor->const_data_ptr <int32_t >()[0 ], 1 );
360+ EXPECT_EQ (cloned_tensor->const_data_ptr <int32_t >()[3 ], 4 );
361+ EXPECT_EQ (cloned_tensor->scalar_type (), exec_aten::ScalarType::Int);
362+ }
363+
364+ TEST_F (TensorPtrTest, MakeTensorPtrFromExistingTensorDouble) {
365+ std::vector<double > data = {1.0 , 2.0 , 3.0 , 4.0 };
366+ auto tensor = make_tensor_ptr ({2 , 2 }, data);
367+ auto new_tensor = make_tensor_ptr (*tensor);
368+
369+ EXPECT_EQ (new_tensor->dim (), tensor->dim ());
370+ EXPECT_EQ (new_tensor->size (0 ), tensor->size (0 ));
371+ EXPECT_EQ (new_tensor->size (1 ), tensor->size (1 ));
372+ EXPECT_EQ (
373+ new_tensor->const_data_ptr <double >(), tensor->const_data_ptr <double >());
374+ EXPECT_EQ (new_tensor->scalar_type (), exec_aten::ScalarType::Double);
375+ }
376+
377+ TEST_F (TensorPtrTest, CloneTensorPtrFromExistingTensorDouble) {
378+ std::vector<double > data = {1.0 , 2.0 , 3.0 , 4.0 };
379+ auto tensor = make_tensor_ptr ({2 , 2 }, std::move (data));
380+ auto cloned_tensor = clone_tensor_ptr (*tensor);
381+
382+ EXPECT_EQ (cloned_tensor->dim (), tensor->dim ());
383+ EXPECT_EQ (cloned_tensor->size (0 ), tensor->size (0 ));
384+ EXPECT_EQ (cloned_tensor->size (1 ), tensor->size (1 ));
385+ EXPECT_NE (
386+ cloned_tensor->const_data_ptr <double >(),
387+ tensor->const_data_ptr <double >());
388+ EXPECT_EQ (cloned_tensor->const_data_ptr <double >()[0 ], 1.0 );
389+ EXPECT_EQ (cloned_tensor->const_data_ptr <double >()[3 ], 4.0 );
390+ EXPECT_EQ (cloned_tensor->scalar_type (), exec_aten::ScalarType::Double);
391+ }
392+
393+ TEST_F (TensorPtrTest, CloneTensorPtrFromTensorPtrDouble) {
394+ std::vector<double > data = {1.0 , 2.0 , 3.0 , 4.0 };
395+ auto tensor = make_tensor_ptr ({2 , 2 }, std::move (data));
396+ auto cloned_tensor = clone_tensor_ptr (tensor);
397+
398+ EXPECT_EQ (cloned_tensor->dim (), tensor->dim ());
399+ EXPECT_EQ (cloned_tensor->size (0 ), tensor->size (0 ));
400+ EXPECT_EQ (cloned_tensor->size (1 ), tensor->size (1 ));
401+ EXPECT_NE (
402+ cloned_tensor->const_data_ptr <double >(),
403+ tensor->const_data_ptr <double >());
404+ EXPECT_EQ (cloned_tensor->const_data_ptr <double >()[0 ], 1.0 );
405+ EXPECT_EQ (cloned_tensor->const_data_ptr <double >()[3 ], 4.0 );
406+ EXPECT_EQ (cloned_tensor->scalar_type (), exec_aten::ScalarType::Double);
407+ }
408+
409+ TEST_F (TensorPtrTest, MakeTensorPtrFromExistingTensorInt64) {
410+ std::vector<int64_t > data = {100 , 200 , 300 , 400 };
411+ auto tensor = make_tensor_ptr ({2 , 2 }, data);
412+ auto new_tensor = make_tensor_ptr (*tensor);
413+
414+ EXPECT_EQ (new_tensor->dim (), tensor->dim ());
415+ EXPECT_EQ (new_tensor->size (0 ), tensor->size (0 ));
416+ EXPECT_EQ (new_tensor->size (1 ), tensor->size (1 ));
417+ EXPECT_EQ (
418+ new_tensor->const_data_ptr <int64_t >(), tensor->const_data_ptr <int64_t >());
419+ EXPECT_EQ (new_tensor->scalar_type (), exec_aten::ScalarType::Long);
420+ }
421+
422+ TEST_F (TensorPtrTest, CloneTensorPtrFromExistingTensorInt64) {
423+ std::vector<int64_t > data = {100 , 200 , 300 , 400 };
424+ auto tensor = make_tensor_ptr ({2 , 2 }, std::move (data));
425+ auto cloned_tensor = clone_tensor_ptr (*tensor);
426+
427+ EXPECT_EQ (cloned_tensor->dim (), tensor->dim ());
428+ EXPECT_EQ (cloned_tensor->size (0 ), tensor->size (0 ));
429+ EXPECT_EQ (cloned_tensor->size (1 ), tensor->size (1 ));
430+ EXPECT_NE (
431+ cloned_tensor->const_data_ptr <int64_t >(),
432+ tensor->const_data_ptr <int64_t >());
433+ EXPECT_EQ (cloned_tensor->const_data_ptr <int64_t >()[0 ], 100 );
434+ EXPECT_EQ (cloned_tensor->const_data_ptr <int64_t >()[3 ], 400 );
435+ EXPECT_EQ (cloned_tensor->scalar_type (), exec_aten::ScalarType::Long);
436+ }
437+
438+ TEST_F (TensorPtrTest, CloneTensorPtrFromTensorPtrInt64) {
439+ std::vector<int64_t > data = {100 , 200 , 300 , 400 };
440+ auto tensor = make_tensor_ptr ({2 , 2 }, std::move (data));
441+ auto cloned_tensor = clone_tensor_ptr (tensor);
442+
443+ EXPECT_EQ (cloned_tensor->dim (), tensor->dim ());
444+ EXPECT_EQ (cloned_tensor->size (0 ), tensor->size (0 ));
445+ EXPECT_EQ (cloned_tensor->size (1 ), tensor->size (1 ));
446+ EXPECT_NE (
447+ cloned_tensor->const_data_ptr <int64_t >(),
448+ tensor->const_data_ptr <int64_t >());
449+ EXPECT_EQ (cloned_tensor->const_data_ptr <int64_t >()[0 ], 100 );
450+ EXPECT_EQ (cloned_tensor->const_data_ptr <int64_t >()[3 ], 400 );
451+ EXPECT_EQ (cloned_tensor->scalar_type (), exec_aten::ScalarType::Long);
452+ }
0 commit comments