Merge pull request #3180 from akva2/from_intersection

added: FaceDir::FromIntersectionIndex
This commit is contained in:
Bård Skaflestad 2022-10-18 13:30:29 +02:00 committed by GitHub
commit a4995686f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 0 deletions

View File

@ -44,6 +44,8 @@ namespace Opm {
DirEnum FromString(const std::string& stringValue);
int FromMULTREGTString(const std::string& stringValue);
DirEnum FromIntersectionIndex(int idx);
const std::string toString(DirEnum dir);
}
}

View File

@ -96,5 +96,16 @@ namespace Opm {
throw std::runtime_error("This should not happen");
return fmt::format("{}",fmt::join(ret, "|"));
}
DirEnum FromIntersectionIndex(int idx)
{
const std::vector<FaceDir::DirEnum> mapping =
{XMinus, XPlus, YMinus, YPlus, ZMinus, ZPlus};
if (idx < 0 || idx > 5)
throw std::invalid_argument("Wrong face direction");
return mapping[idx];
}
}
}

View File

@ -73,6 +73,18 @@ BOOST_AUTO_TEST_CASE(CheckComposite) {
BOOST_CHECK_THROW( FaceDir::FromString("YX") , std::invalid_argument);
}
BOOST_AUTO_TEST_CASE(CheckIntersection) {
BOOST_CHECK_EQUAL(FaceDir::FromIntersectionIndex(0), FaceDir::XMinus);
BOOST_CHECK_EQUAL(FaceDir::FromIntersectionIndex(1), FaceDir::XPlus);
BOOST_CHECK_EQUAL(FaceDir::FromIntersectionIndex(2), FaceDir::YMinus);
BOOST_CHECK_EQUAL(FaceDir::FromIntersectionIndex(3), FaceDir::YPlus);
BOOST_CHECK_EQUAL(FaceDir::FromIntersectionIndex(4), FaceDir::ZMinus);
BOOST_CHECK_EQUAL(FaceDir::FromIntersectionIndex(5), FaceDir::ZPlus);
BOOST_CHECK_THROW(FaceDir::FromIntersectionIndex(-1), std::invalid_argument);
BOOST_CHECK_THROW(FaceDir::FromIntersectionIndex(6), std::invalid_argument);
}
}