test_that("Dread-Disease Cash Flows", {
library(MortalityTables)
mortalityTables.load("Austria_Census")
# An example dread-disease tariff, morbidity is assumed linearly increasing with age
ddTable = mortalityTable.period(name = "Linear dread-disease table",
ages = 0:100, deathProbs = 0:100/500)
Tarif.DreadDisease = InsuranceTarif$new(
name = "Example Tariff - Dread-Disease",
type = "dread-disease",
tarif = "DD1",
desc = "A dread disease insurance with a lump-sum payment upon diagnosis",
sumInsured = 50000,
mortalityTable = mort.AT.census.2011.unisex,
invalidityTable = ddTable,
i = 0.005
)
Contract.DreadDisease = InsuranceContract$new(
tarif = Tarif.DreadDisease,
age = 40, policyPeriod = 20,
sumInsured = 10000,
contractClosing = as.Date("2020-09-01"),
calculate = "cashflows"
)
expect_equal(Contract.DreadDisease$Parameters$ContractData$policyPeriod, 20)
expect_equal(Contract.DreadDisease$Parameters$ContractData$deferralPeriod, 0)
expect_equal(Contract.DreadDisease$Parameters$ContractData$premiumPeriod, 20)
expect_true(all(Contract.DreadDisease$Values$cashFlows %>% select(-premiums_advance, -disease_SumInsured) == 0))
expect_equal(Contract.DreadDisease$Values$cashFlows$premiums_advance, c(rep(1, 20), 0))
expect_equal(Contract.DreadDisease$Values$cashFlows$disease_SumInsured, c(rep(1, 20), 0))
})
""
test_that("Endowment + Dread-Disease Cash Flows", {
library(MortalityTables)
mortalityTables.load("Austria_Census")
# An example dread-disease tariff, morbidity is assumed linearly increasing with age
ddTable = mortalityTable.period(name = "Linear dread-disease table",
ages = 0:100, deathProbs = 0:100/500)
Tarif.EndowDreadDisease = InsuranceTarif$new(
name = "Example Tariff - Endowment + Dread-Disease",
type = "endowment + dread-disease",
tarif = "EnDD1",
desc = "An endowment and dread disease insurance with a lump-sum payment upon diagnosis",
sumInsured = 50000,
mortalityTable = mort.AT.census.2011.unisex,
invalidityTable = ddTable,
invalidityEndsContract = TRUE,
i = 0.005
)
Contract.EndowDreadDisease = InsuranceContract$new(
tarif = Tarif.EndowDreadDisease,
age = 40, policyPeriod = 20,
sumInsured = 10000,
contractClosing = as.Date("2020-09-01"),
calculate = "cashflows"
)
expect_equal(Contract.EndowDreadDisease$Parameters$ContractData$policyPeriod, 20)
expect_equal(Contract.EndowDreadDisease$Parameters$ContractData$deferralPeriod, 0)
expect_equal(Contract.EndowDreadDisease$Parameters$ContractData$premiumPeriod, 20)
expect_true(all(Contract.EndowDreadDisease$Values$cashFlows %>% select(-premiums_advance, -survival_advance, -death_SumInsured, -death_PremiumFree, -disease_SumInsured) == 0))
expect_equal(Contract.EndowDreadDisease$Values$cashFlows$premiums_advance, c(rep(1, 20), 0))
expect_equal(Contract.EndowDreadDisease$Values$cashFlows$survival_advance, c(rep(0, 20), 1))
expect_equal(Contract.EndowDreadDisease$Values$cashFlows$death_SumInsured, c(rep(1, 20), 0))
expect_equal(Contract.EndowDreadDisease$Values$cashFlows$disease_SumInsured, c(rep(1, 20), 0))
expect_equal(Contract.EndowDreadDisease$Values$cashFlows$death_PremiumFree, c(rep(1, 20), 0))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.