TEST_F(UnitsFixture,QuantityRegex_DecomposeQuantities) {
  std::string qStr("3 m");
  std::pair<std::string,std::string> result;
  
  result = decomposeQuantityString(qStr);
  EXPECT_EQ("3",result.first); EXPECT_EQ("m",result.second);

  qStr = "-.1D-3 kg*m/s^2";
  result = decomposeQuantityString(qStr);
  EXPECT_EQ("-.1D-3",result.first); EXPECT_EQ("kg*m/s^2",result.second);

  qStr = "3200 lb_f/s^2";
  result = decomposeQuantityString(qStr);
  EXPECT_EQ("3200",result.first); EXPECT_EQ("lb_f/s^2",result.second);

  qStr = "3.01E2 M(lb_m*kg/K*s)";
  result = decomposeQuantityString(qStr);
  EXPECT_EQ("3.01E2",result.first); EXPECT_EQ("M(lb_m*kg/K*s)",result.second);

  qStr = "21 shorts";
  result = decomposeQuantityString(qStr);
  EXPECT_EQ("21",result.first); EXPECT_EQ("shorts",result.second);

  qStr = "0.0002658928196837 kN";
  result = decomposeQuantityString(qStr);
  EXPECT_EQ("0.0002658928196837",result.first); EXPECT_EQ("kN",result.second);

  EXPECT_THROW(decomposeQuantityString("A nice, short sentence."),openstudio::Exception);
  EXPECT_THROW(decomposeQuantityString("5 m."),openstudio::Exception);
  EXPECT_THROW(decomposeQuantityString("2.0kg*m"),openstudio::Exception);
  EXPECT_THROW(decomposeQuantityString("9.12E-32 lb_f/s)"),openstudio::Exception);
  EXPECT_THROW(decomposeQuantityString("t3.0 s"),openstudio::Exception);
  EXPECT_THROW(decomposeQuantityString("5,000 W/m^2"),openstudio::Exception);
}