File: ZLimitsTest.cpp

package info (click to toggle)
bornagain 23.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 103,936 kB
  • sloc: cpp: 423,131; python: 40,997; javascript: 11,167; awk: 630; sh: 318; ruby: 173; xml: 130; makefile: 51; ansic: 24
file content (82 lines) | stat: -rw-r--r-- 2,452 bytes parent folder | download | duplicates (2)
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include "Resample/Slice/ZLimits.h"

#include "Tests/GTestWrapper/google_test.h"
#include <stdexcept>

constexpr double inf = std::numeric_limits<double>::infinity();

TEST(ZLimits, Constructor)
{
    EXPECT_NO_THROW(ZLimits limits5(-inf, -5.0));
    EXPECT_NO_THROW(ZLimits limits6(-5.0, -4.0));
    EXPECT_NO_THROW(ZLimits limits7(-4.0, inf));
    EXPECT_FAILED_ASSERT(ZLimits limits8(-4, -5));
}

TEST(ZLimits, ZLimitsIsFinite)
{
    ZLimits limitless;
    ZLimits poslimit(0, inf);
    ZLimits neglimit(-inf, 0);
    ZLimits finite(-3.0, 5.0);
    EXPECT_FALSE(limitless.isFinite());
    EXPECT_FALSE(poslimit.isFinite());
    EXPECT_FALSE(neglimit.isFinite());
    EXPECT_TRUE(finite.isFinite());
}

TEST(ZLimits, unite)
{
    ZLimits limitless;
    ZLimits poslimit1(0, inf);
    ZLimits poslimit2(4, inf);
    ZLimits neglimit1(-inf, -1);
    ZLimits neglimit2(-inf, 5);
    ZLimits finite1(-3.0, 5.0);
    ZLimits finite2(-1.0, 6.0);
    ZLimits finite3(7.0, 15.0);
    ZLimits limits;

    limits = ZLimits::unite(limitless, limitless);
    EXPECT_EQ(limitless, limits);

    limits = ZLimits::unite(limitless, poslimit1);
    EXPECT_EQ(limitless, limits);
    limits = ZLimits::unite(poslimit1, limitless);
    EXPECT_EQ(limitless, limits);

    limits = ZLimits::unite(limitless, neglimit1);
    EXPECT_EQ(limitless, limits);
    limits = ZLimits::unite(neglimit1, limitless);
    EXPECT_EQ(limitless, limits);

    limits = ZLimits::unite(limitless, finite1);
    EXPECT_EQ(limitless, limits);
    limits = ZLimits::unite(finite1, limitless);
    EXPECT_EQ(limitless, limits);

    limits = ZLimits::unite(poslimit1, poslimit2);
    EXPECT_EQ(poslimit1, limits);
    limits = ZLimits::unite(poslimit2, poslimit1);
    EXPECT_EQ(poslimit1, limits);

    limits = ZLimits::unite(poslimit1, neglimit1);
    EXPECT_EQ(limitless, limits);
    limits = ZLimits::unite(neglimit1, poslimit1);
    EXPECT_EQ(limitless, limits);

    limits = ZLimits::unite(neglimit1, neglimit2);
    EXPECT_EQ(neglimit2, limits);
    limits = ZLimits::unite(neglimit2, neglimit1);
    EXPECT_EQ(neglimit2, limits);

    limits = ZLimits::unite(finite1, finite2);
    EXPECT_EQ(ZLimits(-3, 6), limits);
    limits = ZLimits::unite(finite2, finite1);
    EXPECT_EQ(ZLimits(-3, 6), limits);

    limits = ZLimits::unite(finite1, finite3);
    EXPECT_EQ(ZLimits(-3, 15), limits);
    limits = ZLimits::unite(finite3, finite1);
    EXPECT_EQ(ZLimits(-3, 15), limits);
}