[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5000] Refactor, indigitating a defect
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5000] Refactor, indigitating a defect |
Date: |
Mon, 21 Jun 2010 17:21:17 +0000 |
Revision: 5000
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5000
Author: chicares
Date: 2010-06-21 17:21:16 +0000 (Mon, 21 Jun 2010)
Log Message:
-----------
Refactor, indigitating a defect
Modified Paths:
--------------
lmi/trunk/ihs_irc7702a.cpp
Modified: lmi/trunk/ihs_irc7702a.cpp
===================================================================
--- lmi/trunk/ihs_irc7702a.cpp 2010-06-21 15:49:37 UTC (rev 4999)
+++ lmi/trunk/ihs_irc7702a.cpp 2010-06-21 17:21:16 UTC (rev 5000)
@@ -278,6 +278,9 @@
Pmts[j * months_per_year] = a_Pmts[j];
}
HOPEFULLY(a_Bfts.size() <= max_years);
+// UpdateBft7702A() updates this, thus:
+// Bfts[TestPeriodDur] = current_bft;
+// so should we make sure Bfts[TestPeriodDur] is zero here?
for(unsigned int j = 0; j < a_Bfts.size(); ++j)
{
for(int k = 0; k < months_per_year; ++k)
@@ -291,12 +294,13 @@
AssumedBft = a_LowestBft; // TODO ?? Is this needed? Is it not always
Bfts[0]?
LowestBft = a_LowestBft;
- HOPEFULLY
- ( static_cast<unsigned int>(PolicyYear - a_ContractYear)
- < SevenPPRateVec.size()
- );
- Saved7PPRate = SevenPPRateVec[std::max(0, PolicyYear -
a_ContractYear)];
- state_.B2_deduced_px7_rate = SevenPPRateVec[std::max(0, PolicyYear -
a_ContractYear)];
+ // This is wrong, because we don't know whether the last MC
+ // occurred before or after the anniversary:
+ unsigned int duration_of_last_mc = PolicyYear - a_ContractYear;
+ HOPEFULLY(duration_of_last_mc < SevenPPRateVec.size());
+ duration_of_last_mc = std::max(0U, duration_of_last_mc);
+ Saved7PPRate = SevenPPRateVec[duration_of_last_mc];
+ state_.B2_deduced_px7_rate = SevenPPRateVec[duration_of_last_mc];
SavedNecPrem = 0.0;
UnnecPrem = 0.0;
SavedNSP = NSPVec[PolicyYear]; // TODO ?? Ignores interpolation.
@@ -1333,6 +1337,7 @@
,Bfts.begin() + std::min(TestPeriodLen, TestPeriodDur)
);
LMI_ASSERT(Bfts.begin() <= last_bft_in_test_period);
+// This is harmful for inforce if inforce history is unreliable:
LowestBft = *std::min_element(Bfts.begin(), last_bft_in_test_period);
return LowestBft;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5000] Refactor, indigitating a defect,
Greg Chicares <=