lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master db006a2: Add 'InforceAsOfDate' to invariant l


From: Greg Chicares
Subject: [lmi-commits] [lmi] master db006a2: Add 'InforceAsOfDate' to invariant ledger
Date: Fri, 14 Oct 2016 00:12:57 +0000 (UTC)

branch: master
commit db006a2ae46aa7517d21c7b77aba59ccbc2e8b30
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Add 'InforceAsOfDate' to invariant ledger
    
    Goal: to add this field to the group roster (very soon).
    
    It is represented as both string and JDN (as are other dates).
    
    Of course, adding a field affects regression tests. To validate:
    
    cd /opt/lmi/touchstone
    for z in *; do diff -q -I '^InforceAsOfDateJdn' $z ../test/$z ; done
    Files md5sums and ../test/md5sums differ
---
 ledger_invariant.cpp |   14 ++++++++++----
 ledger_invariant.hpp |    2 ++
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/ledger_invariant.cpp b/ledger_invariant.cpp
index 1b0377e..c64137f 100644
--- a/ledger_invariant.cpp
+++ b/ledger_invariant.cpp
@@ -184,6 +184,7 @@ void LedgerInvariant::Alloc(int len)
     OtherScalars    ["Has1035ExchCharge"     ] = &Has1035ExchCharge      ;
     OtherScalars    ["EffDateJdn"            ] = &EffDateJdn             ;
     OtherScalars    ["DateOfBirthJdn"        ] = &DateOfBirthJdn         ;
+    OtherScalars    ["InforceAsOfDateJdn"    ] = &InforceAsOfDateJdn     ;
     OtherScalars    ["SplitFundAllocation"   ] = &SplitFundAllocation    ;
     OtherScalars    ["GenAcctAllocation"     ] = &GenAcctAllocation      ;
     OtherScalars    ["SupplementalReport"    ] = &SupplementalReport     ;
@@ -401,6 +402,7 @@ void LedgerInvariant::Copy(LedgerInvariant const& obj)
     // Scalars of type not compatible with double.
     EffDate                = obj.EffDate               ;
     DateOfBirth            = obj.DateOfBirth           ;
+    InforceAsOfDate        = obj.InforceAsOfDate       ;
     InitErMode             = obj.InitErMode            ;
     InitDBOpt              = obj.InitDBOpt             ;
 
@@ -886,10 +888,12 @@ void LedgerInvariant::Init(BasicValues* b)
     UWClass                 = mc_str(b->yare_input_.UnderwritingClass);
     SubstandardTable        = mc_str(b->yare_input_.SubstandardTable);
 
-    EffDate                 = 
calendar_date(b->yare_input_.EffectiveDate).str();
-    EffDateJdn              = 
calendar_date(b->yare_input_.EffectiveDate).julian_day_number();
-    DateOfBirth             = calendar_date(b->yare_input_.DateOfBirth).str();
-    DateOfBirthJdn          = 
calendar_date(b->yare_input_.DateOfBirth).julian_day_number();
+    EffDate                 = calendar_date(b->yare_input_.EffectiveDate  
).str();
+    EffDateJdn              = calendar_date(b->yare_input_.EffectiveDate  
).julian_day_number();
+    DateOfBirth             = calendar_date(b->yare_input_.DateOfBirth    
).str();
+    DateOfBirthJdn          = calendar_date(b->yare_input_.DateOfBirth    
).julian_day_number();
+    InforceAsOfDate         = 
calendar_date(b->yare_input_.InforceAsOfDate).str();
+    InforceAsOfDateJdn      = 
calendar_date(b->yare_input_.InforceAsOfDate).julian_day_number();
     InitErMode              = mc_str(b->Outlay_->er_premium_modes()[0]);
 
     mcenum_dbopt const init_dbo = b->DeathBfts_->dbopt()[0];
@@ -1014,6 +1018,8 @@ LedgerInvariant& LedgerInvariant::PlusEq(LedgerInvariant 
const& a_Addend)
     EffDateJdn                    = a_Addend.EffDateJdn;
     DateOfBirth                   = a_Addend.DateOfBirth;
     DateOfBirthJdn                = a_Addend.DateOfBirthJdn;
+    InforceAsOfDate               = a_Addend.InforceAsOfDate;
+    InforceAsOfDateJdn            = a_Addend.InforceAsOfDateJdn;
     InitErMode                    = a_Addend.InitErMode;
     InitDBOpt                     = a_Addend.InitDBOpt;
     Age                           = std::min(Age, a_Addend.Age);
diff --git a/ledger_invariant.hpp b/ledger_invariant.hpp
index 1ad5fd7..6b908df 100644
--- a/ledger_invariant.hpp
+++ b/ledger_invariant.hpp
@@ -201,6 +201,7 @@ class LMI_SO LedgerInvariant
     double          Has1035ExchCharge;
     double          EffDateJdn;
     double          DateOfBirthJdn;
+    double          InforceAsOfDateJdn;
     double          SplitFundAllocation;
     double          GenAcctAllocation;
     double          SupplementalReport;
@@ -384,6 +385,7 @@ class LMI_SO LedgerInvariant
     // JDNs are used in UpdateCRC() and Spew().
     std::string     EffDate;
     std::string     DateOfBirth;
+    std::string     InforceAsOfDate;
 
     // Arguably enumerative members such as 'ErMode' should be of type
     // std::string instead, because strings would be more useful for



reply via email to

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