lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5692] Augment unit tests; demonstrate a latent defect


From: Greg Chicares
Subject: [lmi-commits] [5692] Augment unit tests; demonstrate a latent defect
Date: Wed, 17 Apr 2013 20:25:19 +0000

Revision: 5692
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5692
Author:   chicares
Date:     2013-04-17 20:25:17 +0000 (Wed, 17 Apr 2013)
Log Message:
-----------
Augment unit tests; demonstrate a latent defect

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

Modified: lmi/trunk/ChangeLog
===================================================================
--- lmi/trunk/ChangeLog 2013-04-17 13:13:18 UTC (rev 5691)
+++ lmi/trunk/ChangeLog 2013-04-17 20:25:17 UTC (rev 5692)
@@ -32018,3 +32018,44 @@
   premium_tax.hpp
 Rearrange and improve documentation.
 
+20130416T1230Z <address@hidden> [544]
+
+  premium_tax.cpp
+Remove a duplicative test.
+
+20130416T1523Z <address@hidden> [544]
+
+  premium_tax.cpp
+  premium_tax.hpp
+Aggroup consistency tests.
+
+20130416T1726Z <address@hidden> [544]
+
+  mec_server.cpp
+  premium_tax.cpp
+  premium_tax.hpp
+Refactor, making a misbegotten free function a member.
+
+20130417T1015Z <address@hidden> [544]
+
+  premium_tax.cpp
+  premium_tax.hpp
+Refactor.
+
+20130417T1309Z <address@hidden> [544]
+
+  database.hpp
+Improve documentation.
+
+20130417T1313Z <address@hidden> [544]
+
+  dbdict.hpp
+  premium_tax.hpp
+  premium_tax_test.cpp
+Demonstrate and document a requirement that's not necessarily obvious.
+
+20130417T2025Z <address@hidden> [545]
+
+  premium_tax_test.cpp
+Augment unit tests; demonstrate a latent defect.
+

Modified: lmi/trunk/premium_tax_test.cpp
===================================================================
--- lmi/trunk/premium_tax_test.cpp      2013-04-17 13:13:18 UTC (rev 5691)
+++ lmi/trunk/premium_tax_test.cpp      2013-04-17 20:25:17 UTC (rev 5692)
@@ -73,33 +73,36 @@
     {
     // 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 );
+    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 );
+    BOOST_TEST_EQUAL(z.calculate_load(1.0, strata), 0.0175);
     }
 
     // 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 );
+    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 );
+    BOOST_TEST_EQUAL(z.calculate_load(1.0, strata), 0.0200);
     }
 
     // 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  );
+    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  );
+    BOOST_TEST_EQUAL(z.calculate_load(1.0, strata), 0.0270);
     }
 
     // Tiered in premium-tax state, but load uniformly zero.
-    // A uniform but nonzero load elicits a runtime error, because
-    // the tiered load is not zero.
+    // A uniform but nonzero load would elicit a runtime error,
+    // because the tiered load is not zero.
     {
     database_entity const original = 
DBDictionary::instance().datum("PremTaxLoad");
     database_entity const scalar(DB_PremTaxLoad, 0.0000);
@@ -107,10 +110,15 @@
     DBDictionary::instance().datum("PremTaxLoad") = scalar;
 
     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.0000);
-    BOOST_TEST_EQUAL(z.is_tiered      (), true  );
+    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                (), true  );
+    // TODO ?? This is a pitfall--at least it should be diagnosed.
+    // The tiered load is 2.7% on the first dollar, but the '0.027'
+    // answer is surprising and inconsistent with the behavior of
+    // least_load_rate() above.
+//    BOOST_TEST_EQUAL(z.calculate_load(1.0, strata), 0.0000);
 
     DBDictionary::instance().datum("PremTaxLoad") = original;
     }
@@ -119,10 +127,11 @@
     {
     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 );
+//    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 );
+//    BOOST_TEST_EQUAL(z.calculate_load(1.0, strata), 0.0000);
     }
 }
 




reply via email to

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