mirror of
https://github.com/OPM/ResInsight.git
synced 2026-08-27 13:47:12 -05:00
73 lines
3.4 KiB
C++
73 lines
3.4 KiB
C++
#include "gtest/gtest.h"
|
|
|
|
#include "Tools/Ensemble/RiaEnsembleImportTools.h"
|
|
|
|
namespace internal
|
|
{
|
|
QString placeholderText()
|
|
{
|
|
return "$(INDEX)";
|
|
}
|
|
} // namespace internal
|
|
|
|
TEST( RimPathPatternFileSetTest, OneVaryingNumberRealizations )
|
|
{
|
|
QStringList filePaths = { "drogon-varying-grid-geometry/realization-0/iter-0/eclipse/model/DROGON-0.EGRID",
|
|
"drogon-varying-grid-geometry/realization-1/iter-0/eclipse/model/DROGON-1.EGRID",
|
|
"drogon-varying-grid-geometry/realization-2/iter-0/eclipse/model/DROGON-2.EGRID",
|
|
"drogon-varying-grid-geometry/realization-3/iter-0/eclipse/model/DROGON-3.EGRID",
|
|
"drogon-varying-grid-geometry/realization-13/iter-0/eclipse/model/DROGON-13.EGRID" };
|
|
|
|
const auto& [basePath, numberRange] = RiaEnsembleImportTools::findPathPattern( filePaths, internal::placeholderText() );
|
|
EXPECT_STREQ( basePath.toStdString().data(),
|
|
"drogon-varying-grid-geometry/realization-$(INDEX)/iter-0/eclipse/model/DROGON-$(INDEX).EGRID" );
|
|
EXPECT_STREQ( numberRange.toStdString().data(), "0-3, 13" );
|
|
|
|
const auto paths = RiaEnsembleImportTools::createPathsFromPattern( basePath, numberRange, internal::placeholderText() );
|
|
EXPECT_EQ( paths.size(), 5 );
|
|
if ( paths.size() != filePaths.size() ) return;
|
|
for ( auto i = 0; i < paths.size(); i++ )
|
|
{
|
|
EXPECT_STREQ( paths[i].toStdString().data(), filePaths[i].toStdString().data() );
|
|
}
|
|
}
|
|
|
|
TEST( RimPathPatternFileSetTest, OneVaryingNumberMultipleLocations )
|
|
{
|
|
QStringList filePaths = { "file_1/path-02/real-1.txt", "file_2/path-02/real-2.txt", "file_3/path-02/real-3.txt", "file_13/path-02/real-13.txt" };
|
|
const auto& [basePath, numberRange] = RiaEnsembleImportTools::findPathPattern( filePaths, internal::placeholderText() );
|
|
EXPECT_STREQ( basePath.toStdString().data(), "file_$(INDEX)/path-02/real-$(INDEX).txt" );
|
|
EXPECT_STREQ( numberRange.toStdString().data(), "1-3, 13" );
|
|
|
|
const auto paths = RiaEnsembleImportTools::createPathsFromPattern( basePath, numberRange, internal::placeholderText() );
|
|
EXPECT_EQ( paths.size(), 4 );
|
|
EXPECT_STREQ( paths[0].toStdString().data(), "file_1/path-02/real-1.txt" );
|
|
EXPECT_STREQ( paths[1].toStdString().data(), "file_2/path-02/real-2.txt" );
|
|
EXPECT_STREQ( paths[2].toStdString().data(), "file_3/path-02/real-3.txt" );
|
|
EXPECT_STREQ( paths[3].toStdString().data(), "file_13/path-02/real-13.txt" );
|
|
}
|
|
|
|
TEST( RimPathPatternFileSetTest, OneVaryingNumber )
|
|
{
|
|
QStringList filePaths = { "file_001.txt", "file_002.txt", "file_003.txt" };
|
|
auto result = RiaEnsembleImportTools::findPathPattern( filePaths, internal::placeholderText() );
|
|
EXPECT_STREQ( result.first.toStdString().data(), "file_$(INDEX).txt" );
|
|
EXPECT_STREQ( result.second.toStdString().data(), "1-3" );
|
|
}
|
|
|
|
TEST( RimPathPatternFileSetTest, EmptyInput )
|
|
{
|
|
QStringList filePaths;
|
|
auto result = RiaEnsembleImportTools::findPathPattern( filePaths, internal::placeholderText() );
|
|
EXPECT_TRUE( result.first.isEmpty() );
|
|
EXPECT_TRUE( result.second.isEmpty() );
|
|
}
|
|
|
|
TEST( RimPathPatternFileSetTest, NoVaryingNumbers )
|
|
{
|
|
QStringList filePaths = { "file_123.txt", "file_123.txt" };
|
|
auto result = RiaEnsembleImportTools::findPathPattern( filePaths, internal::placeholderText() );
|
|
EXPECT_TRUE( result.first.isEmpty() );
|
|
EXPECT_TRUE( result.second.isEmpty() );
|
|
}
|