lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5684] Test premium-tax rates


From: Greg Chicares
Subject: [lmi-commits] [5684] Test premium-tax rates
Date: Tue, 16 Apr 2013 12:14:18 +0000

Revision: 5684
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5684
Author:   chicares
Date:     2013-04-16 12:14:18 +0000 (Tue, 16 Apr 2013)
Log Message:
-----------
Test premium-tax rates

Modified Paths:
--------------
    lmi/trunk/premium_tax_test.cpp

Modified: lmi/trunk/premium_tax_test.cpp
===================================================================
--- lmi/trunk/premium_tax_test.cpp      2013-04-16 12:13:27 UTC (rev 5683)
+++ lmi/trunk/premium_tax_test.cpp      2013-04-16 12:14:18 UTC (rev 5684)
@@ -28,7 +28,10 @@
 
 #include "premium_tax.hpp"
 
-#include "path_utility.hpp" // initialize_filesystem()
+#include "database.hpp"
+#include "dbdict.hpp"
+#include "path_utility.hpp"             // initialize_filesystem()
+#include "stratified_charges.hpp"
 #include "test_tools.hpp"
 
 class premium_tax_test
@@ -36,17 +39,73 @@
   public:
     static void test()
         {
-        test_something();
+        write_prerequisite_files();
+        test_rates();
         }
 
   private:
-    static void test_something();
+    static void write_prerequisite_files();
+    static void test_rates();
 };
 
-/// Placeholder.
+void premium_tax_test::write_prerequisite_files()
+{
+    DBDictionary::instance() .WriteSampleDBFile      ();
+    stratified_charges      ::write_stratified_files ();
+}
 
-void premium_tax_test::test_something()
+/// Test premium-tax rates.
+
+void premium_tax_test::test_rates()
 {
+    product_database db
+        ("sample"
+        ,mce_female
+        ,mce_standard
+        ,mce_nonsmoker
+        ,45
+        ,mce_nonmedical
+        ,mce_s_CT
+        );
+    stratified_charges strata("sample.strata");
+
+    // Tax state = domicile; not tiered.
+    {
+    // arguments: tax_state, domicile, amortize_premium_load, db, strata
+    premium_tax z(mce_s_CT, mce_s_CT, false, db, strata);
+    BOOST_TEST_EQUAL(z.levy_rate      (), 0.0175);
+    BOOST_TEST_EQUAL(z.load_rate      (), 0.0175);
+    BOOST_TEST_EQUAL(z.least_load_rate(), 0.0175);
+    BOOST_TEST_EQUAL(z.is_tiered      (), false );
+    }
+
+    // Retaliation.
+    {
+    premium_tax z(mce_s_CT, mce_s_MA, false, db, strata);
+    BOOST_TEST_EQUAL(z.levy_rate      (), 0.0200);
+    BOOST_TEST_EQUAL(z.load_rate      (), 0.0200);
+    BOOST_TEST_EQUAL(z.least_load_rate(), 0.0200);
+    BOOST_TEST_EQUAL(z.is_tiered      (), false );
+    }
+
+    // Tiered.
+    {
+    premium_tax z(mce_s_AK, mce_s_CT, false, db, strata);
+    BOOST_TEST_EQUAL(z.levy_rate      (), 0.0000);
+    BOOST_TEST_EQUAL(z.load_rate      (), 0.0000);
+    BOOST_TEST_EQUAL(z.least_load_rate(), 0.0010);
+    BOOST_TEST_EQUAL(z.is_tiered      (), true  );
+    }
+
+    // Amortized.
+    {
+    premium_tax z(mce_s_CT, mce_s_MA, true , db, strata);
+    // TODO ?? Don't the suppressed tests indicate a defect?
+//    BOOST_TEST_EQUAL(z.levy_rate      (), 0.0000);
+//    BOOST_TEST_EQUAL(z.load_rate      (), 0.0000);
+    BOOST_TEST_EQUAL(z.least_load_rate(), 0.0000);
+    BOOST_TEST_EQUAL(z.is_tiered      (), false );
+    }
 }
 
 int test_main(int, char*[])




reply via email to

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