lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master 48aa040 4/7: Use recently added query_into()


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 48aa040 4/7: Use recently added query_into() overload for currency
Date: Thu, 4 Feb 2021 16:44:32 -0500 (EST)

branch: master
commit 48aa040b497e26478a7ee32d1b534918cfcaa621
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>

    Use recently added query_into() overload for currency
    
    This change gains the "uniformity" discussed in the last commit.
---
 ihs_basicval.cpp | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/ihs_basicval.cpp b/ihs_basicval.cpp
index e1e1b99..bea8ebc 100644
--- a/ihs_basicval.cpp
+++ b/ihs_basicval.cpp
@@ -556,10 +556,15 @@ currency BasicValues::GetAnnualTgtPrem(int a_year, 
currency a_specamt) const
 
 void BasicValues::SetPermanentInvariants()
 {
-    MinIssSpecAmt      = 
round_specamt().c(database().query<double>(DB_MinIssSpecAmt     ));
-    MinIssBaseSpecAmt  = 
round_specamt().c(database().query<double>(DB_MinIssBaseSpecAmt ));
-    MinRenlSpecAmt     = 
round_specamt().c(database().query<double>(DB_MinRenlSpecAmt    ));
-    MinRenlBaseSpecAmt = 
round_specamt().c(database().query<double>(DB_MinRenlBaseSpecAmt));
+    database().query_into(DB_MinIssSpecAmt        , MinIssSpecAmt);
+    database().query_into(DB_MinIssBaseSpecAmt    , MinIssBaseSpecAmt);
+    database().query_into(DB_MinRenlSpecAmt       , MinRenlSpecAmt);
+    database().query_into(DB_MinRenlBaseSpecAmt   , MinRenlBaseSpecAmt);
+    // Make sure database contents have no excess precision.
+    LMI_ASSERT(round_specamt().c(MinIssSpecAmt     ) == MinIssSpecAmt     );
+    LMI_ASSERT(round_specamt().c(MinIssBaseSpecAmt ) == MinIssBaseSpecAmt );
+    LMI_ASSERT(round_specamt().c(MinRenlSpecAmt    ) == MinRenlSpecAmt    );
+    LMI_ASSERT(round_specamt().c(MinRenlBaseSpecAmt) == MinRenlBaseSpecAmt);
     database().query_into(DB_NoLapseDboLvlOnly    , NoLapseDboLvlOnly);
     database().query_into(DB_NoLapseUnratedOnly   , NoLapseUnratedOnly);
     database().query_into(DB_DboChgCanIncrSpecAmt , OptChgCanIncrSA);
@@ -575,7 +580,9 @@ void BasicValues::SetPermanentInvariants()
     database().query_into(DB_MinPremType          , MinPremType);
     database().query_into(DB_TgtPremType          , TgtPremType);
     database().query_into(DB_TgtPremFixedAtIssue  , TgtPremFixedAtIssue);
-    TgtPremMonthlyPolFee = 
round_gross_premium().c(database().query<double>(DB_TgtPremMonthlyPolFee));
+    database().query_into(DB_TgtPremMonthlyPolFee , TgtPremMonthlyPolFee);
+    // Make sure database contents have no excess precision.
+    LMI_ASSERT(round_gross_premium().c(TgtPremMonthlyPolFee) == 
TgtPremMonthlyPolFee);
     // Assertion: see comments on GetModalPremTgtFromTable().
     LMI_ASSERT(C0 == TgtPremMonthlyPolFee || oe_modal_table == TgtPremType);
     database().query_into(DB_CurrCoiTable0Limit   , CurrCoiTable0Limit);
@@ -595,8 +602,11 @@ void BasicValues::SetPermanentInvariants()
     database().query_into(DB_AdbLimit             , AdbLimit);
     database().query_into(DB_WpLimit              , WpLimit);
     database().query_into(DB_SpecAmtLoadLimit     , SpecAmtLoadLimit);
-    MinWD = round_withdrawal().c(database().query<double>(DB_MinWd));
-    WDFee = round_withdrawal().c(database().query<double>(DB_WdFee));
+    database().query_into(DB_MinWd                , MinWD);
+    database().query_into(DB_WdFee                , WDFee);
+    // Make sure database contents have no excess precision.
+    LMI_ASSERT(round_withdrawal().c(MinWD) == MinWD);
+    LMI_ASSERT(round_withdrawal().c(WDFee) == WDFee);
     database().query_into(DB_WdFeeRate            , WDFeeRate);
     database().query_into(DB_AllowChangeToDbo2    , AllowChangeToDBO2);
     database().query_into(DB_AllowSpecAmtIncr     , AllowSAIncr);



reply via email to

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