예제 #1
0
__author__ = "PedroCR"

import pytest

from essential_life import mortality_table as mt, mortality_table, commutation_table, annuities
from soa_tables import read_soa_table_xml as rst
from toDelete.mortality_tables_old import TV7377, GRF95

lt_tv7377 = mortality_table.MortalityTable(mt=TV7377)
lt_grf95 = mortality_table.MortalityTable(mt=GRF95)

soa_TV7377 = rst.SoaTable('../../soa_tables/TV7377.xml')
soa_GRF95 = rst.SoaTable('../../soa_tables/GRF95.xml')
mt_GRF95 = mt.MortalityTable(mt=soa_GRF95.table_qx)
mt_TV7377 = mt.MortalityTable(mt=soa_TV7377.table_qx)


def test_ax():
    i = 2
    g = 1
    m = 1
    x = 45
    method = 'udd'
    cf_grf95 = commutation_table.CommutationFunctions(i=i,
                                                      g=g,
                                                      mt=soa_GRF95.table_qx)
    cf_tv7377 = commutation_table.CommutationFunctions(i=i,
                                                       g=g,
                                                       mt=soa_TV7377.table_qx)

    a_grf = annuities.ax(mt=mt_GRF95, x=x, i=i, g=g, m=m, method=method)
import pandas as pd

from soa_tables import read_soa_table_xml as rst
from essential_life import mortality_table, commutation_table
import matplotlib.pyplot as plt

table_names = ['TV7377', 'GRF95', 'GRM95']
interest_rate = 4
name = table_names[0]
mt = rst.SoaTable('../../soa_tables/' + name + '.xml')
lt = mortality_table.MortalityTable(mt=mt.table_qx)
ct = commutation_table.CommutationFunctions(i=interest_rate,
                                            g=0,
                                            mt=mt.table_qx)

lx = 1000
frequency = 1
first_instalment_at = 5
number_of_instalments = 1000
premium_instalments = 5
instalment = 10000
dict_annuity = {'x': 50, 'n': 1000, 'm': 1, 'defer': first_instalment_at}
renda_premium = ct.naax(x=dict_annuity['x'], n=premium_instalments)
full_liability = ct.t_naax(x=dict_annuity['x'], n=dict_annuity['n'], m=dict_annuity['m'], defer=dict_annuity['defer']) * \
                 instalment * lx
premium1 = full_liability / lx / renda_premium

i = interest_rate / 100
dict_liability = {
    't': [],
    'x': [],
예제 #3
0
import sys

from soa_tables import read_soa_table_xml as rst
from essential_life import mortality_table, commutation_table

this_py = os.path.split(sys.argv[0])[-1][:-3]


def parse_table_name(name):
    return name.replace(' ', '').replace('/', '')


table_names = ['TV7377', 'GRF95', 'GRM95']
interest_rate = 6
mt_lst = [
    rst.SoaTable('../../soa_tables/' + name + '.xml') for name in table_names
]
lt_lst = [mortality_table.MortalityTable(mt=mt.table_qx) for mt in mt_lst]
ct_lst = [
    commutation_table.CommutationFunctions(i=interest_rate,
                                           g=0,
                                           mt=mt.table_qx) for mt in mt_lst
]
ages = np.linspace(start=20, stop=40, num=5, dtype=int)
'''
Prepare the solution for Equal Instalments
'''
capital = 100000
terms = 25
ac = annuities_certain.Annuities_Certain(interest_rate=interest_rate,
                                         frequency=1)
예제 #4
0
# author: PedroCR #
from soa_tables import read_soa_table_xml as rst
from essential_life import mortality_table, commutation_table

mt_TV7377 = rst.SoaTable('../soa_tables/TV7377.xml')
mt_GRF95 = rst.SoaTable('../soa_tables/GRF95.xml')
mt_GRM95 = rst.SoaTable('../soa_tables/GRM95.xml')

lt_tv7377 = mortality_table.MortalityTable(mt=mt_TV7377.table_qx)
lt_gRF95 = mortality_table.MortalityTable(mt=mt_GRF95.table_qx)
lt_gRM95 = mortality_table.MortalityTable(mt=mt_GRM95.table_qx)

cf_tv7377 = commutation_table.CommutationFunctions(i=1.4,
                                                   g=1,
                                                   mt=mt_TV7377.table_qx)
cf_grf95 = commutation_table.CommutationFunctions(i=1.4,
                                                  g=1,
                                                  mt=mt_GRF95.table_qx)
cf_grm95 = commutation_table.CommutationFunctions(i=1.4,
                                                  g=1,
                                                  mt=mt_GRM95.table_qx)

print(cf_tv7377.df_commutation_table())
print(cf_tv7377.t_aax(55, m=1, defer=(67 - 55)))
print(cf_grm95.t_aax(55, m=1, defer=(67 - 55)))
print(cf_grf95.t_aax(55, m=1, defer=(67 - 55)))