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); }
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; }