def test_calc_sask_oil_prov_crown_deductions(self): pr = ProcessRoyalties() calc = DataStructure() calc.TransBaseValue = 0 calc.BaseRoyaltyRate = 0.1 m = DataStructure() m.TransRate = 0.123 m.ProdVol = 150.0 lease_royalty_master = DataStructure() lease_royalty_master.TransDeducted = "All" lease_royalty_master.CrownMultiplier = 1.0 fn_interest = 1.0 rp_interest = 100.0 # Note: this is a round even situation... it's questionable self.assertEqual( 1.84, pr.calc_sask_oil_prov_crown_deductions(m, fn_interest, rp_interest, lease_royalty_master, calc) ) lease_royalty_master.CrownMultiplier = 0.9 fn_interest = 0.8 rp_interest = 90.0 self.assertEqual( 1.2, pr.calc_sask_oil_prov_crown_deductions(m, fn_interest, rp_interest, lease_royalty_master, calc) )
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)