TEST_F(ConstructFromScratch, AddElements) { IdealGasPhase p; p.addElement("H"); p.addElement("O"); ASSERT_EQ((size_t) 2, p.nElements()); ASSERT_EQ("H", p.elementName(0)); ASSERT_EQ((size_t) 1, p.elementIndex("O")); }
TEST_F(ConstructFromScratch, ignoreUndefinedElements) { IdealGasPhase p; p.addElement("H"); p.addElement("O"); p.ignoreUndefinedElements(); p.addSpecies(sO2); p.addSpecies(sOH); ASSERT_EQ((size_t) 2, p.nSpecies()); p.addSpecies(sCO); p.addSpecies(sCO2); ASSERT_EQ((size_t) 2, p.nSpecies()); ASSERT_EQ((size_t) 2, p.nElements()); ASSERT_EQ(npos, p.speciesIndex("CO2")); }
TEST_F(ConstructFromScratch, throwUndefindElements) { IdealGasPhase p; p.throwUndefinedElements(); p.addElement("H"); p.addElement("O"); p.addSpecies(sH2O); p.addSpecies(sH2); ASSERT_EQ((size_t) 2, p.nSpecies()); p.addSpecies(sO2); p.addSpecies(sOH); ASSERT_EQ((size_t) 4, p.nSpecies()); ASSERT_EQ("H2", p.speciesName(1)); ASSERT_EQ(2, p.nAtoms(2, 1)); // O in O2 ASSERT_EQ(2, p.nAtoms(0, 0)); // H in H2O ASSERT_THROW(p.addSpecies(sCO), CanteraError); }
TEST_F(ConstructFromScratch, addUndefinedElements) { IdealGasPhase p; p.addElement("H"); p.addElement("O"); p.addUndefinedElements(); // default behavior p.addSpecies(sH2); p.addSpecies(sOH); ASSERT_EQ((size_t) 2, p.nSpecies()); ASSERT_EQ((size_t) 2, p.nElements()); p.addSpecies(sCO); p.addSpecies(sCO2); ASSERT_EQ((size_t) 4, p.nSpecies()); ASSERT_EQ((size_t) 3, p.nElements()); ASSERT_EQ((size_t) 1, p.nAtoms(p.speciesIndex("CO2"), p.elementIndex("C"))); ASSERT_EQ((size_t) 2, p.nAtoms(p.speciesIndex("co2"), p.elementIndex("O"))); p.setMassFractionsByName("H2:0.5, CO2:0.5"); ASSERT_DOUBLE_EQ(0.5, p.massFraction("CO2")); }