def test_calcSaskOilIOGR1995(self): m = DataStructure() # m.WellHeadPrice = 221.123456 m.SalesPrice = 221.123456 m.TransRate = 2.123455 m.ProcessingRate = 0.123455 m.ProdVol = 70 m.ProdMonth = 201501 calc = DataStructure() calc.BaseRoyaltyValue = 0.0 calc.CommencementPeriod = 0 calc.BaseRoyaltyVolume = 0.0 calc.RoyaltyPrice = 0.0 crown_multiplier = 1.2 fn_interest = 0.25 rp_interest = 100 pr = ProcessRoyalties() # all tests for SaskWellHead pr.calc_sask_oil_iogr1995( datetime(2015, 1, 1), "SaskWellHead", crown_multiplier, fn_interest, rp_interest, m, calc ) self.assertEqual(464.36, calc.BaseRoyaltyValue) self.assertEqual(calc.CommencementPeriod, 0) self.assertEqual(calc.BaseRoyaltyVolume, 7) self.assertEqual(calc.RoyaltyPrice, 221.123456) m.ProdVol = 100 crown_multiplier = 0.25 fn_interest = 3 rp_interest = 100 pr.calc_sask_oil_iogr1995( datetime(2015, 4, 2), "SaskWellHead", crown_multiplier, fn_interest, rp_interest, m, calc ) self.assertEqual(calc.BaseRoyaltyValue, 1990.11) m.ProdVol = 170 crown_multiplier = 1.0 fn_interest = 1 rp_interest = 100 pr.calc_sask_oil_iogr1995( datetime(2015, 5, 1), "SaskWellHead", crown_multiplier, fn_interest, rp_interest, m, calc ) self.assertEqual(calc.BaseRoyaltyValue, 5881.88) m.ProdVol = 79.9 crown_multiplier = 3 fn_interest = 2 rp_interest = 100 pr.calc_sask_oil_iogr1995( datetime(2010, 1, 1), "SaskWellHead", crown_multiplier, fn_interest, rp_interest, m, calc ) self.assertEqual(calc.BaseRoyaltyValue, 10600.66) m.ProdVol = 150 crown_multiplier = 2 fn_interest = 4 rp_interest = 100 pr.calc_sask_oil_iogr1995( datetime(2009, 7, 3), "SaskWellHead", crown_multiplier, fn_interest, rp_interest, m, calc ) self.assertEqual(calc.BaseRoyaltyValue, 38917.73) m.ProdVol = 500 crown_multiplier = 1 fn_interest = 5 rp_interest = 100 pr.calc_sask_oil_iogr1995( datetime(2007, 8, 2), "SaskWellHead", crown_multiplier, fn_interest, rp_interest, m, calc ) self.assertEqual(calc.BaseRoyaltyValue, 124271.38) m.ProdVol = 800 crown_multiplier = 5 fn_interest = 0.1 rp_interest = 100 pr.calc_sask_oil_iogr1995( datetime(2008, 9, 9), "SaskWellHead", crown_multiplier, fn_interest, rp_interest, m, calc ) self.assertEqual(calc.BaseRoyaltyValue, 21117.29) m.ProdVol = 800 crown_multiplier = 5 fn_interest = 0.1 rp_interest = 50 pr.calc_sask_oil_iogr1995( datetime(2008, 9, 9), "SaskWellHead", crown_multiplier, fn_interest, rp_interest, m, calc ) self.assertEqual(calc.BaseRoyaltyValue, 10558.65)
def test_calc_sask_oil_prov_crown_royalty_volume_value(self): pr = ProcessRoyalties() m = DataStructure() m.ProdVol = 100 lease_rm = DataStructure() lease_rm.MinRoyaltyRate = 0.0 lease_rm.MinRoyaltyDollar = 0.0 lease_rm.CrownMultiplier = 1 lease_rm.ValuationMethod = "ActSales" lease_rm.CrownModifier = None calc = DataStructure() calc.BaseRoyaltyRate = 0.25 calc.BaseRoyaltyCalcRate = 0.25 calc.RoyaltyPrice = 210 calc.BaseRoyaltyVolume = 0.0 calc.BaseRoyaltyValue = 0.0 m.SalesPrice = 223.370366 m.TransRate = 2.123455 m.ProcessingRate = 0.123455 fn_interest = 1.0 rp_interest = 100.0 pr.calc_sask_oil_prov_crown_royalty_volume_value(m, fn_interest, rp_interest, lease_rm, calc) self.assertEqual(calc.BaseRoyaltyVolume, 0.0) self.assertEqual(calc.BaseRoyaltyValue, 5584.26) calc.BaseRoyaltyCalcRate = -0.01 calc.BaseRoyaltyRate = -0.01 lease_rm.MinRoyaltyRate = None pr.calc_sask_oil_prov_crown_royalty_volume_value(m, fn_interest, rp_interest, lease_rm, calc) self.assertEqual(calc.BaseRoyaltyRate, 0) calc.BaseRoyaltyCalcRate = -0.01 calc.BaseRoyaltyRate = -0.01 lease_rm.MinRoyaltyRate = 0.02 pr.calc_sask_oil_prov_crown_royalty_volume_value(m, fn_interest, rp_interest, lease_rm, calc) self.assertEqual(calc.BaseRoyaltyRate, 0.02) self.assertEqual(calc.BaseRoyaltyValue, 446.74) lease_rm.MinRoyaltyDollar = 500.0 pr.calc_sask_oil_prov_crown_royalty_volume_value(m, fn_interest, rp_interest, lease_rm, calc) self.assertEqual(calc.BaseRoyaltyValue, 500.0) lease_rm.MinRoyaltyDollar = None lease_rm.MinRoyaltyRate = None calc.BaseRoyaltyCalcRate = 0.35 lease_rm.CrownModifier = 0.02 calc.BaseRoyaltyRate = None pr.calc_sask_oil_prov_crown_royalty_volume_value(m, fn_interest, rp_interest, lease_rm, calc) self.assertEqual(calc.BaseRoyaltyRate, 0.37) # Reset to normal again lease_rm.CrownModifier = 0.0 calc.BaseRoyaltyCalcRate = 0.25 calc.RoyaltyPrice = 210 calc.BaseRoyaltyVolume = 0.0 calc.BaseRoyaltyValue = 0.0 pr.calc_sask_oil_prov_crown_royalty_volume_value(m, fn_interest, rp_interest, lease_rm, calc) self.assertEqual(calc.BaseRoyaltyVolume, 0.0) self.assertEqual(calc.BaseRoyaltyValue, 5584.26) m.ProdVol = 100 rp_interest = 50.0 pr.calc_sask_oil_prov_crown_royalty_volume_value(m, fn_interest, rp_interest, lease_rm, calc) self.assertEqual(calc.BaseRoyaltyVolume, 0.0) self.assertEqual(calc.BaseRoyaltyValue, 2792.13) m.ProdVol = 100 rp_interest = 50.0 fn_interest = 0.5 pr.calc_sask_oil_prov_crown_royalty_volume_value(m, fn_interest, rp_interest, lease_rm, calc) self.assertEqual(calc.BaseRoyaltyVolume, 0.0) self.assertEqual(calc.BaseRoyaltyValue, 1396.06)