Skip to content

Commit

Permalink
Merge branch 'master' into core/mpi/specialized-spatial-search-mpi
Browse files Browse the repository at this point in the history
  • Loading branch information
loumalouomega committed Jun 15, 2023
2 parents b572c41 + 4c5f016 commit 71dac60
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions kratos/tests/cpp_tests/utilities/test_polynomial_utilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,22 @@
#include "testing/testing.h"
#include "utilities/polynomial_utilities.h"

namespace Kratos::Testing {
namespace Kratos::Testing::PolynomialUtilitiesTests {

namespace {
using Polynomial = PolynomialUtilities::PolynomialType;
using Interval = PolynomialUtilities::IntervalType;
using RootIntervals = std::vector<PolynomialUtilities::IntervalType>;
constexpr double TOLERANCE = 1e-9;

void CheckExactlyOneIntervalContains(const RootIntervals& rIntervals, double Coordinate) {
std::size_t CountIntervalsContaining(const RootIntervals& rIntervals, double Coordinate) {
std::size_t containing = 0;
for (const auto& range: rIntervals) {
if (range[0] <= Coordinate && range[1] >= Coordinate) {
++containing;
}
}
KRATOS_ERROR_IF(containing > 1) << "More than one interval contains coordinate " << Coordinate << std::endl;
KRATOS_ERROR_IF(containing == 0) << "No interval contains coordinate " << Coordinate << std::endl;
return containing;
}
}

Expand Down Expand Up @@ -91,13 +90,13 @@ KRATOS_TEST_CASE_IN_SUITE(PolynomialUtilitiesIsolateRoots, KratosCoreFastSuite)

PolynomialUtilities::IsolateRoots(intervals, a, Interval{-1, 1});
KRATOS_CHECK_EQUAL(intervals.size(), 3);
CheckExactlyOneIntervalContains(intervals, -0.7360625845831237);
CheckExactlyOneIntervalContains(intervals, -0.45955361708183773);
CheckExactlyOneIntervalContains(intervals, 0.4880690318514098);
KRATOS_CHECK_EQUAL(CountIntervalsContaining(intervals, -0.7360625845831237), 1);
KRATOS_CHECK_EQUAL(CountIntervalsContaining(intervals, -0.45955361708183773), 1);
KRATOS_CHECK_EQUAL(CountIntervalsContaining(intervals, 0.4880690318514098), 1);

PolynomialUtilities::IsolateRoots(intervals, a, Interval{0, 1});
KRATOS_CHECK_EQUAL(intervals.size(), 1);
CheckExactlyOneIntervalContains(intervals, 0.4880690318514098);
KRATOS_CHECK_EQUAL(CountIntervalsContaining(intervals, 0.4880690318514098), 1);

PolynomialUtilities::IsolateRoots(intervals, a, Interval{-2, -1});
KRATOS_CHECK_EQUAL(intervals.size(), 0);
Expand Down

0 comments on commit 71dac60

Please sign in to comment.