Remove superfluous use of epsilon in EnsembleParameter and fix test

This commit is contained in:
Gaute Lindkvist
2020-07-28 09:25:48 +02:00
parent ee5c058634
commit 447d335fc8
2 changed files with 43 additions and 22 deletions

View File

@@ -32,18 +32,34 @@ void RimSummaryCaseCollection_TESTER::test1()
EnsembleParameter param;
param.type = EnsembleParameter::TYPE_NUMERIC;
size_t valueCount = countDistribution( gen );
double meanValue = meanDistribution( gen );
double range = variationDistribution( gen );
std::uniform_real_distribution<double> valueDistribution( meanValue - range, meanValue + range );
double maxValue = -std::numeric_limits<double>::max();
double minValue = std::numeric_limits<double>::max();
for ( size_t j = 0; j < valueCount; ++j )
size_t valueCount = countDistribution( gen );
double maxValue = -std::numeric_limits<double>::max();
double minValue = std::numeric_limits<double>::max();
// Add a few with zero variation
if ( i % 100 )
{
double value = valueDistribution( gen );
maxValue = std::max( maxValue, value );
minValue = std::min( minValue, value );
param.values.push_back( QVariant( value ) );
double value = (double)i;
maxValue = value;
minValue = value;
for ( size_t j = 0; j < valueCount; ++j )
{
param.values.push_back( value );
}
}
else
{
double meanValue = meanDistribution( gen );
double range = variationDistribution( gen );
std::uniform_real_distribution<double> valueDistribution( meanValue - range, meanValue + range );
for ( size_t j = 0; j < valueCount; ++j )
{
double value = valueDistribution( gen );
maxValue = std::max( maxValue, value );
minValue = std::min( minValue, value );
param.values.push_back( QVariant( value ) );
}
}
param.minValue = minValue;
@@ -55,6 +71,7 @@ void RimSummaryCaseCollection_TESTER::test1()
param.name = QString( "%1" ).arg( i );
parameters.push_back( param );
}
size_t previousSize = parameters.size();
RimSummaryCaseCollection::sortByBinnedVariation( parameters );
size_t currentSize = parameters.size();
@@ -63,7 +80,14 @@ void RimSummaryCaseCollection_TESTER::test1()
int currentVariation = (int)EnsembleParameter::HIGH_VARIATION;
for ( const EnsembleParameter& nameParamPair : parameters )
{
EXPECT_GE( nameParamPair.variationBin, (int)EnsembleParameter::LOW_VARIATION );
if ( nameParamPair.normalizedStdDeviation() == 0.0 )
{
EXPECT_EQ( nameParamPair.variationBin, (int)EnsembleParameter::NO_VARIATION );
}
else
{
EXPECT_GE( nameParamPair.variationBin, (int)EnsembleParameter::LOW_VARIATION );
}
EXPECT_LE( nameParamPair.variationBin, (int)EnsembleParameter::HIGH_VARIATION );
EXPECT_LE( nameParamPair.variationBin, currentVariation );
currentVariation = nameParamPair.variationBin;