#5706 Refactored EnsembleParameter usage.

Cache the list in SummaryCaseCollection
Removed the name, EnsembleParameter pair usage
Add operator< to be able to insert them in a set
This commit is contained in:
Jacob Støren
2020-03-20 11:22:14 +01:00
parent 1c57f7682f
commit 0accbfdd0d
10 changed files with 157 additions and 70 deletions

View File

@@ -6,7 +6,18 @@
#include <QDebug>
class RimSummaryCaseCollection_TESTER
{
public:
static void test1();
};
TEST( RimSummaryCaseCollection, EnsembleParameter )
{
RimSummaryCaseCollection_TESTER::test1();
}
void RimSummaryCaseCollection_TESTER::test1()
{
std::random_device rd;
std::mt19937 gen( rd() );
@@ -15,7 +26,7 @@ TEST( RimSummaryCaseCollection, EnsembleParameter )
std::uniform_int_distribution<size_t> countDistribution( 1u, 1000u );
size_t N = 1000;
std::vector<EnsembleParameter::NameParameterPair> parameters;
std::vector<EnsembleParameter> parameters;
for ( size_t i = 0; i < N; ++i )
{
EnsembleParameter param;
@@ -41,19 +52,20 @@ TEST( RimSummaryCaseCollection, EnsembleParameter )
double normStdDev = param.normalizedStdDeviation();
EXPECT_GE( normStdDev, 0.0 );
EXPECT_LE( normStdDev, std::sqrt( 2.0 ) );
parameters.push_back( std::make_pair( QString( "%1" ).arg( i ), param ) );
param.name = QString( "%1" ).arg( i );
parameters.push_back( param );
}
size_t previousSize = parameters.size();
EnsembleParameter::sortByBinnedVariation( parameters );
RimSummaryCaseCollection::sortByBinnedVariation( parameters );
size_t currentSize = parameters.size();
EXPECT_EQ( previousSize, currentSize );
int currentVariation = (int)EnsembleParameter::HIGH_VARIATION;
for ( const EnsembleParameter::NameParameterPair& nameParamPair : parameters )
for ( const EnsembleParameter& nameParamPair : parameters )
{
EXPECT_GE( nameParamPair.second.variationBin, (int)EnsembleParameter::LOW_VARIATION );
EXPECT_LE( nameParamPair.second.variationBin, (int)EnsembleParameter::HIGH_VARIATION );
EXPECT_LE( nameParamPair.second.variationBin, currentVariation );
currentVariation = nameParamPair.second.variationBin;
EXPECT_GE( nameParamPair.variationBin, (int)EnsembleParameter::LOW_VARIATION );
EXPECT_LE( nameParamPair.variationBin, (int)EnsembleParameter::HIGH_VARIATION );
EXPECT_LE( nameParamPair.variationBin, currentVariation );
currentVariation = nameParamPair.variationBin;
}
}