@@ -62,6 +62,28 @@ TEST_F(TensorTest, TestConversions) {
62
62
at::TensorOptions (at::kInt ));
63
63
EXPECT_TRUE (CheckBidirectionalConversion (a, at::ScalarType::Long));
64
64
}
65
+ {
66
+ at::Tensor a = at::randint (std::numeric_limits<uint16_t >::min (),
67
+ std::numeric_limits<uint16_t >::max (), {2 , 2 },
68
+ at::TensorOptions (at::kUInt16 ));
69
+ EXPECT_TRUE (CheckBidirectionalConversion (a, at::ScalarType::UInt16 ));
70
+ EXPECT_TRUE (CheckBidirectionalConversion (a, at::ScalarType::UInt32 ));
71
+ EXPECT_TRUE (CheckBidirectionalConversion (a, at::ScalarType::UInt64 ));
72
+ }
73
+ {
74
+ at::Tensor a = at::randint (std::numeric_limits<uint32_t >::min (),
75
+ std::numeric_limits<uint32_t >::max (), {2 , 2 },
76
+ at::TensorOptions (at::kUInt32 ));
77
+ EXPECT_TRUE (CheckBidirectionalConversion (a, at::ScalarType::UInt32 ));
78
+ EXPECT_TRUE (CheckBidirectionalConversion (a, at::ScalarType::UInt64 ));
79
+ }
80
+ {
81
+ // The range of uint64_t is too large for randint to generate.
82
+ at::Tensor a = at::randint (std::numeric_limits<uint32_t >::min (),
83
+ std::numeric_limits<uint32_t >::max (), {2 , 2 },
84
+ at::TensorOptions (at::kUInt64 ));
85
+ EXPECT_TRUE (CheckBidirectionalConversion (a, at::ScalarType::UInt64 ));
86
+ }
65
87
{
66
88
at::Tensor a = at::randint (0 , 1 , {2 , 2 }, at::TensorOptions (at::kByte ));
67
89
EXPECT_TRUE (CheckBidirectionalConversion (a, at::ScalarType::Byte ,
0 commit comments