Completed commodity math tests.

This commit is contained in:
John Wiegley 2007-04-17 09:11:33 +00:00
parent 269a7c6f3b
commit d8296ddc57

View file

@ -635,11 +635,21 @@ amount_t& amount_t::operator/=(const amount_t& amt)
}
if (has_commodity() && amt.has_commodity() &&
commodity() != amt.commodity())
commodity() != amt.commodity()) {
throw new amount_error
(std::string("Dividing amounts with different commodities: ") +
(has_commodity() ? commodity_->qualified_symbol : "NONE") + " != " +
(amt.has_commodity() ? amt.commodity_->qualified_symbol : "NONE"));
}
if (! amt.quantity || ! amt) {
throw new amount_error("Divide by zero");
}
else if (! quantity) {
*this = amt;
*this = *this - *this; // preserve the foreign commodity
goto finish;
}
_dup();