Skip to content

Commit b65bf17

Browse files
committed
Add 7D broadcast test with non-adjacent dimensions
Tests element space size calculation when two non-adjacent middle dimensions (dims 2 and 4) have stride 0 (broadcast).
1 parent e1f2d45 commit b65bf17

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

test/util/unit_tensor_descriptor_helper.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,22 @@ TEST(MakeNaiveTensorDescriptor, BroadcastDimension)
4040
EXPECT_EQ(desc.GetElementSpaceSize(), 5);
4141
}
4242

43+
TEST(MakeNaiveTensorDescriptor, BroadcastNonAdjacentDims7D)
44+
{
45+
// 7D tensor: 2x3x5x7x11x13x17 with broadcast on dims 2 and 4 (non-adjacent)
46+
// Underlying data is 2x3x7x13x17 = 9282 elements, broadcast over dims 2 and 4
47+
// strides: [4641, 1547, 0, 221, 0, 17, 1]
48+
// element_space_size = 1 + (2-1)*4641 + (3-1)*1547 + (5-1)*0 + (7-1)*221
49+
// + (11-1)*0 + (13-1)*17 + (17-1)*1
50+
// = 1 + 4641 + 3094 + 0 + 1326 + 0 + 204 + 16 = 9282
51+
constexpr auto lengths = make_tuple(Number<2>{}, Number<3>{}, Number<5>{}, Number<7>{},
52+
Number<11>{}, Number<13>{}, Number<17>{});
53+
constexpr auto strides = make_tuple(Number<4641>{}, Number<1547>{}, Number<0>{}, Number<221>{},
54+
Number<0>{}, Number<17>{}, Number<1>{});
55+
constexpr auto desc = make_naive_tensor_descriptor(lengths, strides);
56+
EXPECT_EQ(desc.GetElementSpaceSize(), 9282);
57+
}
58+
4359
TEST(MakeNaiveTensorDescriptor, WithPaddingArbitrary)
4460
{
4561
// 11x7x3 tensor with arbitrary strides [2, 97, 23] (prime numbers, no common factors)

0 commit comments

Comments
 (0)