Files
ResInsight/ApplicationLibCode/UnitTests/RimWellLogExtractionCurveImpl-Test.cpp
T

81 lines
3.1 KiB
C++
Raw Normal View History

2015-10-05 16:09:51 +02:00
#include "gtest/gtest.h"
#include "RiaCurveDataTools.h"
2015-10-05 16:09:51 +02:00
2015-10-05 18:41:22 +02:00
#include <cmath> // Needed for HUGE_VAL on Linux
#include <numeric>
2015-10-05 16:09:51 +02:00
//--------------------------------------------------------------------------------------------------
///
2015-10-05 16:09:51 +02:00
//--------------------------------------------------------------------------------------------------
TEST( RimWellLogExtractionCurveImplTest, StripOffInvalidValAtEndsOfVector )
2015-10-05 16:09:51 +02:00
{
std::vector<double> values;
values.push_back( HUGE_VAL );
values.push_back( HUGE_VAL );
values.push_back( 1.0 );
values.push_back( 2.0 );
values.push_back( 3.0 );
values.push_back( HUGE_VAL );
bool includePositiveValuesOnly = false;
auto valuesIntervals = RiaCurveDataTools::calculateIntervalsOfValidValues( values, includePositiveValuesOnly );
EXPECT_EQ( 1, static_cast<int>( valuesIntervals.size() ) );
EXPECT_EQ( 2, static_cast<int>( valuesIntervals[0].first ) );
EXPECT_EQ( 4, static_cast<int>( valuesIntervals[0].second ) );
2015-10-05 18:37:58 +02:00
}
//--------------------------------------------------------------------------------------------------
///
2015-10-05 18:37:58 +02:00
//--------------------------------------------------------------------------------------------------
TEST( RimWellLogExtractionCurveImplTest, StripOffHugeValAtEndsAndInteriorOfVector )
2015-10-05 18:37:58 +02:00
{
std::vector<double> values;
values.push_back( HUGE_VAL );
values.push_back( HUGE_VAL );
values.push_back( 1.0 );
values.push_back( HUGE_VAL );
values.push_back( HUGE_VAL );
values.push_back( 2.0 );
values.push_back( 3.0 );
values.push_back( HUGE_VAL );
bool includePositiveValuesOnly = false;
auto valuesIntervals = RiaCurveDataTools::calculateIntervalsOfValidValues( values, includePositiveValuesOnly );
EXPECT_EQ( 2, static_cast<int>( valuesIntervals.size() ) );
EXPECT_EQ( 2, static_cast<int>( valuesIntervals[0].first ) );
EXPECT_EQ( 2, static_cast<int>( valuesIntervals[0].second ) );
EXPECT_EQ( 5, static_cast<int>( valuesIntervals[1].first ) );
EXPECT_EQ( 6, static_cast<int>( valuesIntervals[1].second ) );
2015-10-05 16:09:51 +02:00
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
TEST( RimWellLogExtractionCurveImplTest, PositiveValuesOnly )
{
std::vector<double> values;
values.push_back( HUGE_VAL );
values.push_back( HUGE_VAL );
values.push_back( -1.0 );
values.push_back( 0.0 );
values.push_back( 0.1 );
values.push_back( 0.2 );
values.push_back( -1.0 );
values.push_back( HUGE_VAL );
values.push_back( 2.0 );
values.push_back( 3.0 );
values.push_back( HUGE_VAL );
bool includePositiveValuesOnly = true;
auto valuesIntervals = RiaCurveDataTools::calculateIntervalsOfValidValues( values, includePositiveValuesOnly );
EXPECT_EQ( 2, static_cast<int>( valuesIntervals.size() ) );
EXPECT_EQ( 4, static_cast<int>( valuesIntervals[0].first ) );
EXPECT_EQ( 5, static_cast<int>( valuesIntervals[0].second ) );
EXPECT_EQ( 8, static_cast<int>( valuesIntervals[1].first ) );
EXPECT_EQ( 9, static_cast<int>( valuesIntervals[1].second ) );
}