literal_test.cpp 1.04 KB
Newer Older
Paul's avatar
Paul committed
1
2

#include <rtg/literal.hpp>
Paul's avatar
Paul committed
3
4
#include <sstream>
#include <string>
Paul's avatar
Paul committed
5
6
#include "test.hpp"

Paul's avatar
Paul committed
7
8
void literal_test()
{
Paul's avatar
Paul committed
9
10
11
12
13
14
    EXPECT(rtg::literal{1} == rtg::literal{1});
    EXPECT(rtg::literal{1} != rtg::literal{2});
    EXPECT(rtg::literal{} == rtg::literal{});
    EXPECT(rtg::literal{} != rtg::literal{2});

    rtg::literal l1{1};
Paul's avatar
Paul committed
15
    rtg::literal l2 = l1; // NOLINT
Paul's avatar
Paul committed
16
17
18
19
20
21
22
23
24
    EXPECT(l1 == l2);
    EXPECT(l1.at<int>(0) == 1);
    EXPECT(!l1.empty());
    EXPECT(!l2.empty());

    rtg::literal l3{};
    rtg::literal l4{};
    EXPECT(l3 == l4);
    EXPECT(l3.empty());
Paul's avatar
Paul committed
25
    EXPECT(l4.empty());
Paul's avatar
Paul committed
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
}

void literal_os1()
{
    rtg::literal l{1};
    std::stringstream ss;
    ss << l;
    EXPECT(ss.str() == "1");
}

void literal_os2()
{
    rtg::literal l{};
    std::stringstream ss;
    ss << l;
Paul's avatar
Paul committed
41
    EXPECT(ss.str().empty());
Paul's avatar
Paul committed
42
43
44
45
}

void literal_os3()
{
Paul's avatar
Paul committed
46
    rtg::shape s{rtg::shape::int64_type, {3}};
Paul's avatar
Paul committed
47
48
49
50
51
52
    rtg::literal l{s, {1, 2, 3}};
    std::stringstream ss;
    ss << l;
    EXPECT(ss.str() == "1, 2, 3");
}

Paul's avatar
Paul committed
53
54
int main()
{
Paul's avatar
Paul committed
55
56
57
    literal_test();
    literal_os1();
    literal_os2();
Paul's avatar
Paul committed
58
}