test_lookup.cpp 860 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <migraphx/migraphx.hpp>
#include "test.hpp"

template <class T>
std::false_type has_handle(migraphx::rank<0>, T)
{
    return {};
}

template <class T>
auto has_handle(migraphx::rank<1>, T*) -> decltype(migraphx::as_handle<T>{}, std::true_type{})
{
    return {};
}

TEST_CASE(shape)
{
    static_assert(std::is_same<migraphx::as_handle<migraphx_shape>, migraphx::shape>{}, "Failed");
    static_assert(std::is_same<migraphx::as_handle<migraphx_shape_t>, migraphx::shape>{}, "Failed");
    static_assert(std::is_same<migraphx::as_handle<const_migraphx_shape_t>, migraphx::shape>{},
                  "Failed");
}
TEST_CASE(non_handle)
{
    int i = 0;
    EXPECT(bool{has_handle(migraphx::rank<1>{}, migraphx_shape_t{})});
    EXPECT(bool{not has_handle(migraphx::rank<1>{}, &i)});
}

int main(int argc, const char* argv[]) { test::run(argc, argv); }