示例#1
0
void TestDefaults(bool from_file, T defval1, T defval2, T val1, T val2)
{
    alps::params p;
    if (from_file) {
        p = get_file_param("with_default", "no_default", val1, val2);
    } else {
        p = get_cmdline_param("with_default", "no_default", val1, val2);
    }
    p.description("This is a test program").
    template define<T>("with_default", defval1, "defined parameter with default").
    template define<T>("no_default", "defined parameter, no default").
    template define<T>("undefined", defval2, "undefined parameter, with default").
    template define<T>("undefined2", "undefined parameter, no default");

    //Access the parameters
    EXPECT_EQ(p["with_default"], val1);
    EXPECT_EQ(p["no_default"], val2);
    EXPECT_EQ(p["undefined"], defval2);

    //Check the "defaulted" status
    EXPECT_FALSE(p.defaulted("with_default"));
    EXPECT_FALSE(p.defaulted("no_default"));
    EXPECT_TRUE(p.defaulted("undefined"));

    EXPECT_THROW(const T& x=p["undefined2"], alps::params::uninitialized_value);
}
示例#2
0
static int get_acis_parms (Param_File_Type *p)
{
   int i;

   if (-1 == _marx_acis_get_generic_parms (p))
     return -1;

   if (-1 == pf_get_parameters (p, Parm_Table))
     return -1;

   for (i = 0; i < _MARX_NUM_ACIS_I_CHIPS; i++)
     {
	_Marx_Acis_Chip_Type *ccd;

	ccd = &Acis_CCDS[i];

	ccd->ccd_id = i;
#if !MARX_HAS_ACIS_GAIN_MAP && !MARX_HAS_ACIS_FEF
	if (-1 == get_double_param (p, "ACIS_CCD%d_Gain", i, &ccd->ccd_gain))
	  return -1;
	if (ccd->ccd_gain <= 0.0)
	  ccd->ccd_gain = 4;
	ccd->ccd_gain /= 1000.0;	       /* Convert to KeV */

	if (-1 == get_double_param (p, "ACIS_CCD%d_Offset", i, &ccd->ccd_offset))
	  return -1;
	ccd->ccd_offset /= 1000.0;	       /* Convert to KeV */

	if (-1 == get_double_param (p, "ACIS-I%d-FanoFactor", i, &ccd->fano_factor))
	  return -1;

	if (-1 == get_double_param (p, "ACIS-I%d-ReadNoise", i, &ccd->read_noise))
	  return -1;

	if (-1 == get_double_param (p, "ACIS-I%d-EnergyGain", i, &ccd->energy_gain))
	  return -1;
#endif
	if (-1 == get_file_param (p, "ACIS-I%d-QEFile", i, &ccd->qe_file))
	  return -1;

	if (-1 == get_file_param (p, "ACIS-I%d-FilterFile", i, &ccd->filter_file))
	  return -1;

     }

   return 0;
}