test_value.cpp 1.58 KB
Newer Older
umangyadav's avatar
umangyadav committed
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <cstdint>
#include <migraphx/migraphx.h>
#include <migraphx/migraphx.hpp>
#include "test.hpp"

TEST_CASE(value_default_construct)
{
    migraphx::value v;
    EXPECT(v.is_null());
    EXPECT(v.get_key().empty());
}

TEST_CASE(value_construct_int1)
{
    EXPECT(migraphx::value(int64_t{1}).is_int64());
    migraphx::value v(int64_t{1});
    EXPECT(v.is_int64());
    EXPECT(v.get_int64() == 1);
    EXPECT(*v.if_int64() == 1);
    EXPECT(v.get_key().empty());
}

TEST_CASE(value_construct_int2)
{
    migraphx::value v = int64_t{1};
    EXPECT(v.is_int64());
    EXPECT(v.get_int64() == 1);
    EXPECT(*v.if_int64() == 1);
    EXPECT(v.get_key().empty());
}

TEST_CASE(value_construct_string)
{
    migraphx::value v = std::string{"one"};
    EXPECT(v.is_string());
    EXPECT(v.get_string() == "one");
    EXPECT(v.if_string() == "one");
    EXPECT(v.get_key().empty());
}

TEST_CASE(value_construct_key_string_literal_pair)
{
    // Use parens instead {} to construct to test the key-pair constructor
    migraphx::value v("key", std::string{"one"});
    EXPECT(v.is_string());
    EXPECT(v.get_string() == "one");
    EXPECT(v.if_string() == "one");
    EXPECT(v.get_key() == "key");
}

TEST_CASE(value_construct_float)
{
    migraphx::value v = 1.0;
    EXPECT(v.is_float());
    // TODO: add float_equal method
    EXPECT(v.get_key().empty());
}

TEST_CASE(value_construct_bool)
{
    migraphx::value v = true;
    EXPECT(v.is_bool());
    EXPECT(v.get_bool() == true);
umangyadav's avatar
umangyadav committed
64
    EXPECT(*v.if_bool() == true);
umangyadav's avatar
umangyadav committed
65
66
67
68
    EXPECT(v.get_key().empty());
}

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