MCPcopy Create free account
hub / github.com/NVIDIA/cutlass / TEST

Function TEST

test/unit/cute/core/reverse.cpp:39–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37#include "cute/container/tuple.hpp"
38
39TEST(CuTe_core, Reverse_Tuple)
40{
41 using cute::get;
42
43 {
44 const auto t = cute::make_tuple();
45 [[maybe_unused]] auto t_r = cute::reverse(t);
46 static_assert(cute::tuple_size_v<decltype(t_r)> == 0);
47 }
48
49 {
50 const auto t = cute::make_tuple(123);
51 [[maybe_unused]] auto t_r = cute::reverse(t);
52 static_assert(cute::tuple_size_v<decltype(t_r)> == 1);
53 EXPECT_EQ(get<0>(t_r), 123);
54 }
55
56 {
57 const auto t = cute::make_tuple(123, 456);
58 [[maybe_unused]] auto t_r = cute::reverse(t);
59 static_assert(cute::tuple_size_v<decltype(t_r)> == 2);
60 EXPECT_EQ(get<0>(t_r), 456);
61 EXPECT_EQ(get<1>(t_r), 123);
62 }
63
64 {
65 const auto t = cute::make_tuple(1, 2, 3, 4, 5);
66 auto t_r = cute::reverse(t);
67 static_assert(cute::tuple_size_v<decltype(t_r)> == 5);
68
69 EXPECT_EQ(get<0>(t_r), 5);
70 EXPECT_EQ(get<1>(t_r), 4);
71 EXPECT_EQ(get<2>(t_r), 3);
72 EXPECT_EQ(get<3>(t_r), 2);
73 EXPECT_EQ(get<4>(t_r), 1);
74 }
75
76 {
77 const auto t = cute::make_tuple(cute::Int<1>{}, cute::Int<2>{}, 3);
78 auto t_r = cute::reverse(t);
79 static_assert(cute::tuple_size_v<decltype(t_r)> == 3);
80 static_assert(cute::is_same_v<cute::remove_cvref_t<decltype(get<0>(t_r))>, int>);
81 static_assert(cute::is_same_v<cute::remove_cvref_t<decltype(get<1>(t_r))>, cute::Int<2>>);
82 static_assert(cute::is_same_v<cute::remove_cvref_t<decltype(get<2>(t_r))>, cute::Int<1>>);
83
84 EXPECT_EQ(get<0>(t_r), 3);
85 EXPECT_EQ(get<1>(t_r), cute::Int<2>{});
86 EXPECT_EQ(get<2>(t_r), cute::Int<1>{});
87 }
88}
89
90TEST(CuTe_core, Reverse_Array)
91{

Callers

nothing calls this directly

Calls 1

reverseFunction · 0.85

Tested by

no test coverage detected