Respond to @amandalund comments on #1286

This commit is contained in:
Paul Romano 2019-07-16 06:21:42 -05:00
parent 5b0d8ed80c
commit 88b28c6ff4
4 changed files with 19 additions and 12 deletions

View file

@ -16,6 +16,9 @@ LegendreFilter::from_xml(pugi::xml_node node)
void
LegendreFilter::set_order(int order)
{
if (order < 0) {
throw std::invalid_argument{"Legendre order must be non-negative."};
}
order_ = order;
n_bins_ = order_ + 1;
}

View file

@ -37,6 +37,9 @@ SpatialLegendreFilter::from_xml(pugi::xml_node node)
void
SpatialLegendreFilter::set_order(int order)
{
if (order < 0) {
throw std::invalid_argument{"Legendre order must be non-negative."};
}
order_ = order;
n_bins_ = order_ + 1;
}

View file

@ -74,6 +74,9 @@ ZernikeFilter::text_label(int bin) const
void
ZernikeFilter::set_order(int order)
{
if (order < 0) {
throw std::invalid_argument{"Zernike order must be non-negative."};
}
order_ = order;
n_bins_ = ((order+1) * (order+2)) / 2;
}
@ -111,7 +114,7 @@ ZernikeRadialFilter::text_label(int bin) const
void
ZernikeRadialFilter::set_order(int order)
{
order_ = order;
ZernikeFilter::set_order(order);
n_bins_ = order / 2 + 1;
}

View file

@ -279,18 +279,16 @@ Tally::Tally(pugi::xml_node node)
// Allocate and store filter user ids
std::vector<Filter*> filters;
if (!filter_ids.empty()) {
for (int filter_id : filter_ids) {
// Determine if filter ID is valid
auto it = model::filter_map.find(filter_id);
if (it == model::filter_map.end()) {
throw std::runtime_error{"Could not find filter " + std::to_string(filter_id)
+ " specified on tally " + std::to_string(id_)};
}
// Store the index of the filter
filters.push_back(model::tally_filters[it->second].get());
for (int filter_id : filter_ids) {
// Determine if filter ID is valid
auto it = model::filter_map.find(filter_id);
if (it == model::filter_map.end()) {
throw std::runtime_error{"Could not find filter " + std::to_string(filter_id)
+ " specified on tally " + std::to_string(id_)};
}
// Store the index of the filter
filters.push_back(model::tally_filters[it->second].get());
}
// Set the filters