[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5704] Fix defect noted 20130418T2222Z
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5704] Fix defect noted 20130418T2222Z |
Date: |
Fri, 19 Apr 2013 12:25:22 +0000 |
Revision: 5704
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5704
Author: chicares
Date: 2013-04-19 12:25:21 +0000 (Fri, 19 Apr 2013)
Log Message:
-----------
Fix defect noted 20130418T2222Z
Modified Paths:
--------------
lmi/trunk/ChangeLog
lmi/trunk/premium_tax.cpp
lmi/trunk/premium_tax.hpp
Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2013-04-19 11:07:13 UTC (rev 5703)
+++ lmi/trunk/ChangeLog 2013-04-19 12:25:21 UTC (rev 5704)
@@ -32121,3 +32121,25 @@
in AK and SD: no product would pass premium tax through as a load in
those two states only.
+20130419T1046Z <address@hidden> [544]
+
+ premium_tax.cpp
+Refactor.
+
+20130419T1100Z <address@hidden> [543]
+
+ premium_tax.cpp
+ premium_tax_test.cpp
+Fix defect noted 20130416T1214Z.
+
+20130419T1107Z <address@hidden> [543]
+
+ premium_tax.cpp
+Refactor.
+
+20130419T1225Z <address@hidden> [542]
+
+ premium_tax.cpp
+ premium_tax.hpp
+Fix defect noted 20130418T2222Z.
+
Modified: lmi/trunk/premium_tax.cpp
===================================================================
--- lmi/trunk/premium_tax.cpp 2013-04-19 11:07:13 UTC (rev 5703)
+++ lmi/trunk/premium_tax.cpp 2013-04-19 12:25:21 UTC (rev 5704)
@@ -100,9 +100,10 @@
,amortize_premium_load_ (amortize_premium_load)
,levy_rate_ (0.0) // Reset below.
,load_rate_ (0.0) // Reset below.
+ ,tax_state_load_rate_ (0.0) // Reset below.
+ ,domiciliary_load_rate_ (0.0) // Reset below.
,maximum_load_rate_ (0.0) // Reset below.
,minimum_load_rate_ (0.0) // Reset below.
- ,domiciliary_load_rate_ (0.0) // Reset below.
,is_tiered_in_tax_state_ (false) // Reset below.
,is_tiered_in_domicile_ (false) // Reset below.
,is_retaliatory_ (false) // Reset below.
@@ -122,12 +123,13 @@
load_rate_is_levy_rate_ = db.are_equivalent(DB_PremTaxLoad,
DB_PremTaxRate);
+ double tax_state_levy_rate = 0.0;
double domiciliary_levy_rate = 0.0;
if(!amortize_premium_load_)
{
database_index index0 = db.index().state(tax_state_);
- levy_rate_ = db.Query(DB_PremTaxRate, index0);
- load_rate_ = db.Query(DB_PremTaxLoad, index0);
+ tax_state_levy_rate = db.Query(DB_PremTaxRate, index0);
+ tax_state_load_rate_ = db.Query(DB_PremTaxLoad, index0);
database_index index1 = db.index().state(domicile_);
domiciliary_levy_rate = db.Query(DB_PremTaxRate, index1);
domiciliary_load_rate_ = db.Query(DB_PremTaxLoad, index1);
@@ -135,9 +137,14 @@
if(is_retaliatory_)
{
- levy_rate_ = std::max(levy_rate_, domiciliary_levy_rate );
- load_rate_ = std::max(load_rate_, domiciliary_load_rate_);
+ levy_rate_ = std::max(tax_state_levy_rate , domiciliary_levy_rate );
+ load_rate_ = std::max(tax_state_load_rate_, domiciliary_load_rate_);
}
+ else
+ {
+ levy_rate_ = tax_state_levy_rate ;
+ load_rate_ = tax_state_load_rate_;
+ }
maximum_load_rate_ = ascertain_maximum_load_rate(strata);
minimum_load_rate_ = ascertain_minimum_load_rate(strata);
@@ -156,9 +163,10 @@
,amortize_premium_load_ (false)
,levy_rate_ (0.0) // Reset below.
,load_rate_ (0.0)
+ ,tax_state_load_rate_ (0.0)
+ ,domiciliary_load_rate_ (0.0)
,maximum_load_rate_ (0.0)
,minimum_load_rate_ (0.0)
- ,domiciliary_load_rate_ (0.0)
,is_tiered_in_tax_state_ (false)
,is_tiered_in_domicile_ (false)
,is_retaliatory_ (false)
@@ -215,13 +223,13 @@
if(is_tiered_in_tax_state_)
{
- if(0.0 != load_rate())
+ if(0.0 != tax_state_load_rate_)
{
fatal_error()
<< "Premium-tax load is tiered in premium-tax state "
<< mc_str(tax_state_)
<< ", but the product database specifies a scalar load of "
- << load_rate()
+ << tax_state_load_rate_
<< " instead of zero as expected. Probably the database"
<< " is incorrect."
<< LMI_FLUSH
@@ -307,9 +315,7 @@
double premium_tax::calculate_load(double payment, stratified_charges const&
strata)
{
- // TODO ?? Incorrect: load_rate() isn't just the rate in the tax
- // state: it already reflects retaliation.
- double tax_in_tax_state = load_rate() * payment;
+ double tax_in_tax_state = tax_state_load_rate_ * payment;
if(varies_by_state_ && is_tiered_in_tax_state_)
{
LMI_ASSERT(0.0 == tax_in_tax_state);
Modified: lmi/trunk/premium_tax.hpp
===================================================================
--- lmi/trunk/premium_tax.hpp 2013-04-19 11:07:13 UTC (rev 5703)
+++ lmi/trunk/premium_tax.hpp 2013-04-19 12:25:21 UTC (rev 5704)
@@ -130,9 +130,10 @@
double levy_rate_;
double load_rate_;
+ double tax_state_load_rate_;
+ double domiciliary_load_rate_;
double maximum_load_rate_;
double minimum_load_rate_;
- double domiciliary_load_rate_;
bool is_tiered_in_tax_state_;
bool is_tiered_in_domicile_;
bool is_retaliatory_;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5704] Fix defect noted 20130418T2222Z,
Greg Chicares <=