[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [5929] Render class Server7702Input obsolete
From: |
Greg Chicares |
Subject: |
[lmi-commits] [5929] Render class Server7702Input obsolete |
Date: |
Fri, 11 Jul 2014 23:28:48 +0000 |
Revision: 5929
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5929
Author: chicares
Date: 2014-07-11 23:28:47 +0000 (Fri, 11 Jul 2014)
Log Message:
-----------
Render class Server7702Input obsolete
Modified Paths:
--------------
lmi/trunk/gpt_input.hpp
lmi/trunk/gpt_server.cpp
lmi/trunk/ihs_server7702.cpp
lmi/trunk/ihs_server7702.hpp
Modified: lmi/trunk/gpt_input.hpp
===================================================================
--- lmi/trunk/gpt_input.hpp 2014-07-11 22:21:17 UTC (rev 5928)
+++ lmi/trunk/gpt_input.hpp 2014-07-11 23:28:47 UTC (rev 5929)
@@ -79,6 +79,8 @@
, public MemberSymbolTable <gpt_input>
, private boost::equality_comparable <gpt_input>
{
+ friend class Server7702;
+
public:
gpt_input();
gpt_input(gpt_input const&);
Modified: lmi/trunk/gpt_server.cpp
===================================================================
--- lmi/trunk/gpt_server.cpp 2014-07-11 22:21:17 UTC (rev 5928)
+++ lmi/trunk/gpt_server.cpp 2014-07-11 23:28:47 UTC (rev 5929)
@@ -72,8 +72,7 @@
,gpt_input const& input
)
{
- Server7702Input i(input);
- Server7702Output o = RunServer7702FromStruct(i);
+ Server7702Output o = RunServer7702FromStruct(input);
gpt_state s;
s["X0_glp" ] = value_cast<std::string>(o.GuidelineLevelPremium );
s["X1_gsp" ] = value_cast<std::string>(o.GuidelineSinglePremium );
Modified: lmi/trunk/ihs_server7702.cpp
===================================================================
--- lmi/trunk/ihs_server7702.cpp 2014-07-11 22:21:17 UTC (rev 5928)
+++ lmi/trunk/ihs_server7702.cpp 2014-07-11 23:28:47 UTC (rev 5929)
@@ -35,8 +35,8 @@
#include "assert_lmi.hpp"
#include "basic_values.hpp"
#include "fenv_lmi.hpp"
+#include "gpt_input.hpp"
#include "ihs_irc7702.hpp"
-#include "ihs_server7702io.hpp"
#include "ihs_x_type.hpp"
#include <exception>
@@ -48,7 +48,7 @@
}
//============================================================================
-Server7702Output RunServer7702FromStruct(Server7702Input a_Input)
+Server7702Output RunServer7702FromStruct(gpt_input a_Input)
{
EnterServer();
Server7702 contract(a_Input);
@@ -57,7 +57,7 @@
}
//============================================================================
-Server7702::Server7702(Server7702Input& a_Input)
+Server7702::Server7702(gpt_input& a_Input)
:Input(a_Input)
,IsIssuedToday(false)
,IsPossibleAdjustableEvent(false)
@@ -151,11 +151,11 @@
//============================================================================
void Server7702::PerformProcessing()
{
- Output.ContractNumber = Input.ContractNumber;
+ Output.ContractNumber = Input.ContractNumber.value();
Output.Status = 0;
Output.AdjustableEventOccurred = false;
- Output.GuidelineLevelPremium = Input.InforceGlp;
- Output.GuidelineSinglePremium = Input.InforceGsp;
+ Output.GuidelineLevelPremium = Input.InforceGlp .value();
+ Output.GuidelineSinglePremium = Input.InforceGsp .value();
Output.GuidelineLevelPremiumPolicyA = 0.0;
Output.GuidelineSinglePremiumPolicyA = 0.0;
Output.GuidelineLevelPremiumPolicyB = 0.0;
@@ -182,41 +182,21 @@
// TODO ?? We can add many similar conditions here.
void Server7702::VerifyPlausibilityOfInput() const
{
- if(Input.OldIssueAge < 0)
+ if(Input.IssueAge.value() < 0)
{
throw server7702_implausible_input
(
- "Old issue age less than zero"
+ "Issue age less than zero"
);
}
- if(99 < Input.OldIssueAge)
+ if(99 < Input.IssueAge.value())
{
throw server7702_implausible_input
(
- "Old issue age greater than 99"
+ "Issue age greater than 99"
);
}
- if(Input.NewIssueAge < 0)
- {
- throw server7702_implausible_input
- (
- "New issue age less than zero"
- );
- }
- if(99 < Input.NewIssueAge)
- {
- throw server7702_implausible_input
- (
- "New issue age greater than 99"
- );
- }
- if(Input.NewIssueAge != Input.OldIssueAge)
- {
- throw server7702_misstatement_of_age_or_gender
- (
- "New issue age different from old issue age"
- );
- }
+// if(Input.NewIssueAge != Input.OldIssueAge) // Not differentiated.
if(Input.NewGender != Input.OldGender)
{
throw server7702_misstatement_of_age_or_gender
@@ -232,8 +212,8 @@
// TODO ?? Is this not superfluous?
if
(
- Input.NewIssueAge != Input.OldIssueAge
- || Input.NewGender != Input.OldGender
+// Input.NewIssueAge != Input.OldIssueAge // Not
differentiated.
+ Input.NewGender != Input.OldGender
)
{
// Consider change of insured as a reissue that probably violates.
@@ -251,7 +231,7 @@
// 0.0 != Input.PremsPaidDecrement
Input.NewDbo != Input.OldDbo
|| ( Input.NewSpecAmt != Input.OldSpecAmt
- && Input.NewBenefitAmount != Input.OldBenefitAmount
+ && Input.NewDeathBft != Input.OldDeathBft
)
// TODO ?? NEED DECISION whether it's a SA or DB change that causes adj event
|| Input.NewQabTermAmt != Input.OldQabTermAmt
@@ -266,7 +246,8 @@
// Assume WP is completely ignored
// || Input.NewWaiverOfPremiumInForce != Input.OldWaiverOfPremiumInForce
// || Input.NewWaiverOfPremiumRating != Input.OldWaiverOfPremiumRating
- || Input.NewAccidentalDeathInForce != Input.OldAccidentalDeathInForce
+// Ignore ADD for now
+// || Input.NewAccidentalDeathInForce != Input.OldAccidentalDeathInForce
// Assume ADD rating is ignored
// || Input.NewAccidentalDeathRating != Input.OldAccidentalDeathRating
// Assume table rating is ignored
@@ -290,10 +271,10 @@
&& Input.InforceGlp == 0.0
&& Input.InforceGsp == 0.0
&& Input.OldGender == Input.NewGender
- && Input.OldUnderwritingClass == Input.NewUnderwritingClass
+// && Input.OldUnderwritingClass == Input.NewUnderwritingClass //
Not differentiated.
&& Input.OldSmoking == Input.NewSmoking
- && Input.OldIssueAge == Input.NewIssueAge
- && Input.OldStateOfJurisdiction == Input.NewStateOfJurisdiction
+// && Input.OldIssueAge == Input.NewIssueAge //
Not differentiated.
+// && Input.OldStateOfJurisdiction == Input.NewStateOfJurisdiction //
Not differentiated.
&& Input.OldSpecAmt == Input.NewSpecAmt
&& Input.OldDbo == Input.NewDbo
;
@@ -317,15 +298,15 @@
// Set new GLP and GSP following an adjustable event, after validating input.
void Server7702::ProcessAdjustableEvent()
{
-// TODO ?? Input.OldBenefitAmount = ?;
+// TODO ?? Input.OldDeathBft = ?;
// GuidelineLevelPremium
// GuidelineSinglePremium
// ? Is this not superfluous?
if
(
- Input.NewIssueAge != Input.OldIssueAge
- || Input.NewGender != Input.OldGender
+// Input.NewIssueAge != Input.OldIssueAge // Not
differentiated.
+ Input.NewGender != Input.OldGender
)
{
throw std::logic_error
@@ -334,8 +315,8 @@
);
}
- Output.GuidelineLevelPremiumPolicyA = Input.InforceGlp;
- Output.GuidelineSinglePremiumPolicyA = Input.InforceGsp;
+ Output.GuidelineLevelPremiumPolicyA = Input.InforceGlp.value();
+ Output.GuidelineSinglePremiumPolicyA = Input.InforceGsp.value();
SetDoleBentsenValuesBC();
Output.GuidelineLevelPremium =
@@ -355,32 +336,32 @@
void Server7702::SetDoleBentsenValuesA()
{
BasicValues basic_values_A
- (Input.ProductName
+ (Input.ProductName .value()
,Input.OldGender .value()
- ,Input.OldUnderwritingClass .value()
+ ,Input.UnderwritingClass .value()
,Input.OldSmoking .value()
- ,Input.OldIssueAge
+ ,Input.IssueAge .value()
,Input.GroupUnderwritingType .value()
- ,Input.OldStateOfJurisdiction .value()
- ,Input.OldSpecAmt
+ ,Input.StateOfJurisdiction .value()
+ ,Input.OldSpecAmt .value()
,Input.OldDbo .value()
- ,Input.OldAccidentalDeathInForce
- ,Input.OldTarget
+ ,false // Input.OldAccidentalDeathInForce
+ ,Input.OldTarget .value()
);
Output.GuidelineLevelPremiumPolicyA = basic_values_A.Irc7702_->CalculateGLP
(0
- ,Input.OldBenefitAmount
- ,Input.OldSpecAmt
- ,Input.OldSpecAmt
- ,Input.OldDbo.value()
+ ,Input.OldDeathBft .value()
+ ,Input.OldSpecAmt .value()
+ ,Input.OldSpecAmt .value()
+ ,Input.OldDbo .value()
);
Output.GuidelineSinglePremiumPolicyA =
basic_values_A.Irc7702_->CalculateGSP
(0
- ,Input.OldBenefitAmount
- ,Input.OldSpecAmt
- ,Input.OldSpecAmt
+ ,Input.OldDeathBft .value()
+ ,Input.OldSpecAmt .value()
+ ,Input.OldSpecAmt .value()
);
}
@@ -388,61 +369,61 @@
void Server7702::SetDoleBentsenValuesBC()
{
BasicValues basic_values_B
- (Input.ProductName
+ (Input.ProductName .value()
,Input.NewGender .value()
- ,Input.NewUnderwritingClass .value()
+ ,Input.UnderwritingClass .value()
,Input.NewSmoking .value()
- ,Input.NewIssueAge
+ ,Input.IssueAge .value()
,Input.GroupUnderwritingType .value()
- ,Input.NewStateOfJurisdiction .value()
- ,Input.NewSpecAmt
+ ,Input.StateOfJurisdiction .value()
+ ,Input.NewSpecAmt .value()
,Input.NewDbo .value()
- ,Input.NewAccidentalDeathInForce
- ,Input.NewTarget
+ ,false // Input.NewAccidentalDeathInForce
+ ,Input.NewTarget .value()
);
Output.GuidelineLevelPremiumPolicyB = basic_values_B.Irc7702_->CalculateGLP
- (Input.InforceYear
- ,Input.NewBenefitAmount
- ,Input.NewSpecAmt
- ,Input.NewSpecAmt
- ,Input.NewDbo.value()
+ (Input.InforceYear .value()
+ ,Input.NewDeathBft .value()
+ ,Input.NewSpecAmt .value()
+ ,Input.NewSpecAmt .value()
+ ,Input.NewDbo .value()
);
Output.GuidelineSinglePremiumPolicyB =
basic_values_B.Irc7702_->CalculateGSP
- (Input.InforceYear
- ,Input.NewBenefitAmount
- ,Input.NewSpecAmt
- ,Input.NewSpecAmt
+ (Input.InforceYear .value()
+ ,Input.NewDeathBft .value()
+ ,Input.NewSpecAmt .value()
+ ,Input.NewSpecAmt .value()
);
BasicValues basic_values_C
- (Input.ProductName
+ (Input.ProductName .value()
,Input.OldGender .value()
- ,Input.OldUnderwritingClass .value()
+ ,Input.UnderwritingClass .value()
,Input.OldSmoking .value()
- ,Input.OldIssueAge
+ ,Input.IssueAge .value()
,Input.GroupUnderwritingType .value()
- ,Input.OldStateOfJurisdiction .value()
- ,Input.OldSpecAmt
+ ,Input.StateOfJurisdiction .value()
+ ,Input.OldSpecAmt .value()
,Input.OldDbo .value()
- ,Input.OldAccidentalDeathInForce
- ,Input.OldTarget
+ ,false // Input.OldAccidentalDeathInForce
+ ,Input.OldTarget .value()
);
Output.GuidelineLevelPremiumPolicyC = basic_values_C.Irc7702_->CalculateGLP
- (Input.InforceYear
- ,Input.OldBenefitAmount
- ,Input.OldSpecAmt
- ,Input.OldSpecAmt
- ,Input.OldDbo.value()
+ (Input.InforceYear .value()
+ ,Input.OldDeathBft .value()
+ ,Input.OldSpecAmt .value()
+ ,Input.OldSpecAmt .value()
+ ,Input.OldDbo .value()
);
Output.GuidelineSinglePremiumPolicyC =
basic_values_C.Irc7702_->CalculateGSP
- (Input.InforceYear
- ,Input.OldBenefitAmount
- ,Input.OldSpecAmt
- ,Input.OldSpecAmt
+ (Input.InforceYear .value()
+ ,Input.OldDeathBft .value()
+ ,Input.OldSpecAmt .value()
+ ,Input.OldSpecAmt .value()
);
}
Modified: lmi/trunk/ihs_server7702.hpp
===================================================================
--- lmi/trunk/ihs_server7702.hpp 2014-07-11 22:21:17 UTC (rev 5928)
+++ lmi/trunk/ihs_server7702.hpp 2014-07-11 23:28:47 UTC (rev 5929)
@@ -26,18 +26,34 @@
#include "config.hpp"
-#include "ihs_server7702io.hpp"
#include "so_attributes.hpp"
#include <stdexcept>
#include <string>
-Server7702Output LMI_SO RunServer7702FromStruct(Server7702Input a_Input);
+class gpt_input;
+struct Server7702Output
+{
+ std::string ContractNumber; // the same identifier
supplied as input.
+ int Status;
+ bool AdjustableEventOccurred;
+ double GuidelineLevelPremium; // the new GLP.
+ double GuidelineSinglePremium; // the new GSP.
+ double GuidelineLevelPremiumPolicyA; // the GLP for notional
policy A-the policy as it was at the last adjustable event, or at issue if
there has been no adjustable event.
+ double GuidelineSinglePremiumPolicyA; // the GSP for notional
policy A-the policy as it was at the last adjustable event, or at issue if
there has been no adjustable event.
+ double GuidelineLevelPremiumPolicyB; // the GLP for notional
policy B; 0.0 at issue or if there has been no adjustable event.
+ double GuidelineSinglePremiumPolicyB; // the GSP for notional
policy B; 0.0 at issue or if there has been no adjustable event.
+ double GuidelineLevelPremiumPolicyC; // the GLP for notional
policy C; 0.0 at issue or if there has been no adjustable event.
+ double GuidelineSinglePremiumPolicyC; // the GSP for notional
policy C; 0.0 at issue or if there has been no adjustable event.
+};
+
+Server7702Output LMI_SO RunServer7702FromStruct(gpt_input a_Input);
+
class Server7702
{
public:
- Server7702(Server7702Input& a_Input);
+ Server7702(gpt_input& a_Input);
void Process();
Server7702Output const& GetOutput() const {return Output;}
@@ -65,7 +81,7 @@
void SetDoleBentsenValuesA();
void SetDoleBentsenValuesBC();
- Server7702Input const& Input;
+ gpt_input const& Input;
Server7702Output Output;
bool IsIssuedToday;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [5929] Render class Server7702Input obsolete,
Greg Chicares <=