Nektar++
Functions
Nektar::RealComparisonUnitTests Namespace Reference

Functions

 BOOST_AUTO_TEST_CASE (TestRealComparisonSmall)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonNotSmall)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonSmallCustomTolerance)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonNotSmallCustomTolerance)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonZero)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonZeroNotZero)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonRealLiteral)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonLiteral)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonConstNotConst)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonNotConstConst)
 
 BOOST_AUTO_TEST_CASE (TestRealComparisonRef)
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonConstNotConst  )

Definition at line 116 of file TestRealComparison.cpp.

117{
118 // This should return false
119 const double ad1 = 0.0;
120 double ad2 = 1.0;
121 BOOST_CHECK(!LibUtilities::IsRealEqual(ad1, ad2));
122}
bool IsRealEqual(T1 &&lhs, T2 &&rhs, const unsigned int factor=NekConstants::kNekFloatCompFact)
compare reals of same type with relative tolerance

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [2/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonLiteral  )

Definition at line 110 of file TestRealComparison.cpp.

111{
112 // Large difference, should return false
113 BOOST_CHECK(!LibUtilities::IsRealEqual(1.00001, 1.000011));
114}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [3/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonNotConstConst  )

Definition at line 124 of file TestRealComparison.cpp.

125{
126 // This should return false
127 double ad1 = 0.0;
128 const double ad2 = 1.0;
129 BOOST_CHECK(!LibUtilities::IsRealEqual(ad1, ad2));
130}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [4/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonNotSmall  )

Definition at line 55 of file TestRealComparison.cpp.

56{
57 // "Large" difference, should return false
58 double ad1 = 1.00001;
59 double ad2 = ad1 * (1.0 + 50 * std::numeric_limits<double>::epsilon());
60 BOOST_CHECK(!LibUtilities::IsRealEqual(ad1, ad2));
61
62 double ad3 = 0.00001;
63 double ad4 = ad3 * (1.0 + 50 * std::numeric_limits<double>::epsilon());
64 BOOST_CHECK(!LibUtilities::IsRealEqual(ad3, ad4));
65}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [5/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonNotSmallCustomTolerance  )

Definition at line 79 of file TestRealComparison.cpp.

80{
81 // "Large" difference, custom tolerance should return true
82 double ad1 = 1.00001;
83 double ad2 = ad1 * (1.0 + 50 * std::numeric_limits<double>::epsilon());
84 BOOST_CHECK(LibUtilities::IsRealEqual(ad1, ad2, 100));
85}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [6/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonRealLiteral  )

Definition at line 103 of file TestRealComparison.cpp.

104{
105 // Large difference, should return false
106 double ad1 = 1.00001;
107 BOOST_CHECK(!LibUtilities::IsRealEqual(ad1, 1.000011));
108}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [7/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonRef  )

Definition at line 132 of file TestRealComparison.cpp.

133{
134 // This should return false
135 double ad1 = 0.0;
136 double &adr = ad1;
137 BOOST_CHECK(!LibUtilities::IsRealEqual(adr, 1.0));
138}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [8/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonSmall  )

Definition at line 43 of file TestRealComparison.cpp.

44{
45 // Small difference, should return true
46 double ad1 = 1.00001;
47 double ad2 = ad1 * (1.0 + 2 * std::numeric_limits<double>::epsilon());
48 BOOST_CHECK(LibUtilities::IsRealEqual(ad1, ad2));
49
50 double ad3 = 0.00001;
51 double ad4 = ad3 * (1.0 + 2 * std::numeric_limits<double>::epsilon());
52 BOOST_CHECK(LibUtilities::IsRealEqual(ad3, ad4));
53}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [9/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonSmallCustomTolerance  )

Definition at line 67 of file TestRealComparison.cpp.

68{
69 // Small difference, custom tolerance should return true
70 double ad1 = 1.00001;
71 double ad2 = ad1 * (1.0 + std::numeric_limits<double>::epsilon());
72 BOOST_CHECK(LibUtilities::IsRealEqual(ad1, ad2, 1));
73
74 double ad3 = 0.00001;
75 double ad4 = ad3 * (1.0 + std::numeric_limits<double>::epsilon());
76 BOOST_CHECK(LibUtilities::IsRealEqual(ad3, ad4, 1));
77}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [10/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonZero  )

Definition at line 87 of file TestRealComparison.cpp.

88{
89 // Both zero, dist and ref value will be zero
90 double ad1 = 0.0;
91 double ad2 = 0.0;
92 BOOST_CHECK(LibUtilities::IsRealEqual(ad1, ad2));
93}

References Nektar::LibUtilities::IsRealEqual().

◆ BOOST_AUTO_TEST_CASE() [11/11]

Nektar::RealComparisonUnitTests::BOOST_AUTO_TEST_CASE ( TestRealComparisonZeroNotZero  )

Definition at line 95 of file TestRealComparison.cpp.

96{
97 // This should return false
98 double ad1 = 0.0;
99 double ad2 = 1.0;
100 BOOST_CHECK(!LibUtilities::IsRealEqual(ad1, ad2));
101}

References Nektar::LibUtilities::IsRealEqual().