lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [5735] Fix defect introduced 20120821T0957Z


From: Greg Chicares
Subject: [lmi-commits] [5735] Fix defect introduced 20120821T0957Z
Date: Wed, 12 Jun 2013 11:26:24 +0000

Revision: 5735
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5735
Author:   chicares
Date:     2013-06-12 11:26:23 +0000 (Wed, 12 Jun 2013)
Log Message:
-----------
Fix defect introduced 20120821T0957Z

Modified Paths:
--------------
    lmi/trunk/ChangeLog
    lmi/trunk/ihs_acctval.cpp

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2013-05-19 11:31:27 UTC (rev 5734)
+++ lmi/trunk/ChangeLog 2013-06-12 11:26:23 UTC (rev 5735)
@@ -32364,3 +32364,14 @@
   ihs_basicval.cpp
 Refactor for concinnity.
 
+20130612T1126Z <address@hidden> [541]
+
+  ihs_acctval.cpp
+Fix defect introduced 20120821T0957Z. Pass lowest death benefit to
+7702A routines instead of complete specamt vector. Only the lowest
+death benefit is relevant anyway. For one particular inforce case,
+soon-to-be-replaced 7702A code had treated an impending decrease as
+having already occurred, causing an assertion to fire when it did
+subsequently occur. Prior to 20120821T0957Z, this had not happened
+because historical and future values had been separate inputs.
+

Modified: lmi/trunk/ihs_acctval.cpp
===================================================================
--- lmi/trunk/ihs_acctval.cpp   2013-05-19 11:31:27 UTC (rev 5734)
+++ lmi/trunk/ihs_acctval.cpp   2013-06-12 11:26:23 UTC (rev 5735)
@@ -522,25 +522,15 @@
         {
         int length_7702a = std::min(7, BasicValues::GetLength());
         // Premium history starts at contract year zero.
+        // TAXATION !! nonstd::copy_n() is used nowhere else, and
+        // may be expunged if this line becomes unnecessary.
         nonstd::copy_n
             (yare_input_.Inforce7702AAmountsPaidHistory.begin()
             ,length_7702a
             ,std::back_inserter(pmts_7702a)
             );
-        // Specamt history starts at policy year zero and must be offset.
-        // TAXATION !! That's wrong, because contract-year history cannot
-        // generally be obtained from policy-year history by any integral
-        // offset; but doesn't LDB provide all the information required,
-        // if only it were used in preference to this?
-        int const offset = duration_ceiling
-            (yare_input_.EffectiveDate
-            ,yare_input_.LastMaterialChangeDate
-            );
-        nonstd::copy_n
-            (yare_input_.SpecifiedAmount.begin() + offset
-            ,length_7702a
-            ,std::back_inserter(bfts_7702a)
-            );
+        // Specamt history is irrelevant except for LDB.
+        bfts_7702a = std::vector<double>(length_7702a, 
yare_input_.InforceLeastDeathBenefit);
         }
     double lowest_death_benefit = yare_input_.InforceLeastDeathBenefit;
     if(0 == InforceYear && 0 == InforceMonth)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]