Final applyUnits commit ...

This commit is contained in:
Joakim Hove
2013-12-14 10:31:07 +01:00
parent 5d7adb027d
commit 04ae0a1798
3 changed files with 54 additions and 19 deletions

View File

@@ -104,7 +104,13 @@ BOOST_AUTO_TEST_CASE(PushBackDimension) {
std::shared_ptr<Dimension> activeDimension(new Dimension("L" , 100));
std::shared_ptr<Dimension> defaultDimension(new Dimension("L" , 10));
item.push_backDimensions( activeDimension , defaultDimension);
item.push_backDimension( activeDimension , defaultDimension);
}
BOOST_AUTO_TEST_CASE(PushBackDimensionInvalidType) {
DeckIntItem item("HEI");
std::shared_ptr<Dimension> dim(new Dimension("L" , 100));
BOOST_CHECK_THROW( item.push_backDimension( dim , dim ) , std::invalid_argument );
}
@@ -124,7 +130,7 @@ BOOST_AUTO_TEST_CASE(GetSISingleDimensionCorrect) {
std::shared_ptr<Dimension> dim(new Dimension("L" , 100));
item.push_backMultiple(1 , 100 );
item.push_backDimensions( dim , dim );
item.push_backDimension( dim , dim );
BOOST_CHECK_EQUAL( 1 , item.getRawDouble(0) );
BOOST_CHECK_EQUAL( 100 , item.getSIDouble(0) );
@@ -137,7 +143,7 @@ BOOST_AUTO_TEST_CASE(GetSISingleDefault) {
std::shared_ptr<Dimension> defaultDim(new Dimension("L" , 100));
item.push_backDefault(1 );
item.push_backDimensions( dim , defaultDim );
item.push_backDimension( dim , defaultDim );
BOOST_CHECK_EQUAL( 1 , item.getRawDouble(0) );
BOOST_CHECK_EQUAL( 100 , item.getSIDouble(0) );
@@ -153,10 +159,10 @@ BOOST_AUTO_TEST_CASE(GetSIMultipleDim) {
std::shared_ptr<Dimension> defaultDim(new Dimension("L" , 100));
item.push_backMultiple( 1 , 16 );
item.push_backDimensions( dim1 , defaultDim );
item.push_backDimensions( dim2 , defaultDim );
item.push_backDimensions( dim3 , defaultDim );
item.push_backDimensions( dim4 , defaultDim );
item.push_backDimension( dim1 , defaultDim );
item.push_backDimension( dim2 , defaultDim );
item.push_backDimension( dim3 , defaultDim );
item.push_backDimension( dim4 , defaultDim );
for (size_t i=0; i < 16; i+= 4) {
BOOST_CHECK_EQUAL( 2 , item.getSIDouble(i) );

View File

@@ -103,7 +103,7 @@ BOOST_AUTO_TEST_CASE(getKeywordList_OK) {
container->addKeyword(keyword2);
container->addKeyword(keyword3);
const std::vector<DeckKeywordConstPtr>& keywordList = container->getKeywordList("TRULS");
const std::vector<DeckKeywordPtr>& keywordList = container->getKeywordList("TRULS");
BOOST_CHECK_EQUAL( 3U , keywordList.size() );
}

View File

@@ -71,20 +71,33 @@ BOOST_AUTO_TEST_CASE(UnitSystemGetMissingDimensionThrows) {
BOOST_CHECK_THROW( system.getDimension("L") , std::invalid_argument );
}
BOOST_AUTO_TEST_CASE(UnitSystemGetNewOK) {
UnitSystem system("Metric");
system.addDimension("L" , 10 );
system.addDimension("t" , 100);
BOOST_CHECK_EQUAL( false , system.hasDimension("L*L/t"));
std::shared_ptr<const Dimension> comp = system.getNewDimension("L*L/t");
BOOST_CHECK_EQUAL( true , system.hasDimension("L*L/t"));
BOOST_CHECK_EQUAL(1 , comp->getSIScaling());
}
BOOST_AUTO_TEST_CASE(UnitSystemAddDimensions) {
UnitSystem system("Metric");
system.addDimension("L" , 1 );
system.addDimension("t" , 86400 );
Dimension length = system.getDimension("L");
Dimension time = system.getDimension("t");
BOOST_CHECK_EQUAL(1 , length.getSIScaling());
BOOST_CHECK_EQUAL(86400 , time.getSIScaling());
std::shared_ptr<const Dimension> length = system.getDimension("L");
std::shared_ptr<const Dimension> time = system.getDimension("t");
BOOST_CHECK_EQUAL(1 , length->getSIScaling());
BOOST_CHECK_EQUAL(86400 , time->getSIScaling());
system.addDimension("L" , 0.3048);
length = system.getDimension("L");
BOOST_CHECK_EQUAL(0.3048 , length.getSIScaling());
BOOST_CHECK_EQUAL(0.3048 , length->getSIScaling());
}
@@ -96,7 +109,7 @@ BOOST_AUTO_TEST_CASE(UnitSystemParseInvalidThrows) {
system.addDimension("L" , 3.00 );
system.addDimension("t" , 9.0 );
std::shared_ptr<Dimension> volumePerTime = system.parse("L*L*L/t");
std::shared_ptr<const Dimension> volumePerTime = system.parse("L*L*L/t");
BOOST_CHECK_EQUAL("L*L*L/t" , volumePerTime->getName() );
BOOST_CHECK_EQUAL(3.0 , volumePerTime->getSIScaling());
}
@@ -118,11 +131,11 @@ BOOST_AUTO_TEST_CASE(CreateMetricSystem) {
std::shared_ptr<UnitSystem> system = std::shared_ptr<UnitSystem>( UnitSystem::newMETRIC() );
checkSystemHasRequiredDimensions( system );
BOOST_CHECK_EQUAL( Metric::Length , system->getDimension("L").getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Mass , system->getDimension("m").getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Time , system->getDimension("t").getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Permeability , system->getDimension("K").getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Pressure , system->getDimension("P").getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Length , system->getDimension("L")->getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Mass , system->getDimension("m")->getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Time , system->getDimension("t")->getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Permeability , system->getDimension("K")->getSIScaling() );
BOOST_CHECK_EQUAL( Metric::Pressure , system->getDimension("P")->getSIScaling() );
}
@@ -154,3 +167,19 @@ BOOST_AUTO_TEST_CASE(DimensionEqual) {
}
BOOST_AUTO_TEST_CASE(UnitSystemEqual) {
std::shared_ptr<UnitSystem> metric1 = std::shared_ptr<UnitSystem>( UnitSystem::newMETRIC() );
std::shared_ptr<UnitSystem> metric2 = std::shared_ptr<UnitSystem>( UnitSystem::newMETRIC() );
std::shared_ptr<UnitSystem> field = std::shared_ptr<UnitSystem>( UnitSystem::newFIELD() );
BOOST_CHECK_EQUAL( true , metric1->equal( *metric1 ));
BOOST_CHECK_EQUAL( true , metric1->equal( *metric2 ));
BOOST_CHECK_EQUAL( false , metric1->equal( *field ));
metric1->addDimension("g" , 3.00 );
BOOST_CHECK_EQUAL( false , metric1->equal( *metric2 ));
BOOST_CHECK_EQUAL( false , metric2->equal( *metric1 ));
}