START_SECTION(~MRMTransitionGroupPicker())
{
  delete ptr;
}
END_SECTION

START_SECTION((template < typename SpectrumT, typename TransitionT > void pickTransitionGroup(MRMTransitionGroup< SpectrumT, TransitionT > &transition_group)))
{ 
  MRMTransitionGroupType transition_group;
  setup_transition_group(transition_group);

  MRMTransitionGroupPicker trgroup_picker;
  trgroup_picker.pickTransitionGroup(transition_group);

  TEST_EQUAL(transition_group.getFeatures().size(), 1)
  MRMFeature mrmfeature = transition_group.getFeatures()[0];
  TEST_REAL_SIMILAR(mrmfeature.getRT(), 1492.83060);
  TEST_REAL_SIMILAR( mrmfeature.getMetaValue("leftWidth"), 1481.84);
  TEST_REAL_SIMILAR( mrmfeature.getMetaValue("rightWidth"), 1501.23);

  // test the number of hull points (should be equal)
  TEST_EQUAL( mrmfeature.getFeature("1").getConvexHulls()[0].getHullPoints().size(), 7);
  TEST_EQUAL( mrmfeature.getFeature("2").getConvexHulls()[0].getHullPoints().size(), 7);

  // the intensity of the hull points should not have changed
  ConvexHull2D::PointArrayType data1_points = mrmfeature.getFeature("2").getConvexHulls()[0].getHullPoints();
  double sum = 0.0;
  for (ConvexHull2D::PointArrayType::iterator it = data1_points.begin(); it != data1_points.end(); it++)
  {
    sum += it->getY();