tests/testthat/test-RoundingHelper.R

test_that("Rounding Helper", {

    rounding = RoundingHelper$new(test = 2, gross.premium = 0, "Sum Insured" = -2)

    rounding$rounding

    expect_equal(
        rounding$round("test", c(2*10^(-8:5), 987654321.987654321)),
        c(0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.02, 0.20, 2.00, 20.00, 200.00, 2000.00, 20000.00, 200000.00, 987654321.99)
    )

    expect_equal(
        rounding$round("gross.premium", c(2*10^(-8:5), 987654321.987654321)),
        c(0, 0, 0, 0, 0, 0, 0, 0, 2, 20, 200, 2000, 20000, 200000, 987654322)
    )

    expect_equal(
        rounding$round("Sum Insured", c(2*10^(-8:5), 987654321.987654321)),
        c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 2000, 20000, 200000, 987654300)
    )

    expect_equal(
        rounding$round("NotExisting", c(2*10^(-8:5), 987654321.987654321)),
        c(2*10^(-8:5), 987654321.987654321)
    )

})

test_that("Calculation of sumInsured from premium", {
    library(MortalityTables)
    mortalityTables.load("Austria_Census")

    Tarif.EndowmentSI = InsuranceTarif$new(
        name = "Example Tariff - Endowment",
        type = "endowment",
        tarif = "E1-RP",
        desc = "An endowment with regular premiums (standard tariff)",
        age = 40, policyPeriod = 20,

        mortalityTable = mort.AT.census.2011.unisex,
        cost = initializeCosts(alpha = 0.04, gamma.contract = 0.0005, unitcosts = 10),
        i = 0.03,
        sumInsured = 10000,
        contractClosing = as.Date("2020-09-01")
    )
    Tarif.EndowmentSI.rounded = Tarif.EndowmentSI$createModification(
        Rounding = list("Premium gross" = 0, "Premium net" = 2)
    )
    Contract.sumInsured = InsuranceContract$new(
        tarif = Tarif.EndowmentSI
    )
    Contract.sumInsured.rounded = InsuranceContract$new(
        tarif = Tarif.EndowmentSI.rounded
    )

    expect_equal(Contract.sumInsured.rounded$Values$premiums[["gross"]], round(Contract.sumInsured$Values$premiums[["gross"]], 0))
    expect_equal(Contract.sumInsured.rounded$Values$premiums[["net"]], round(Contract.sumInsured$Values$premiums[["net"]], 2))

})

Try the LifeInsureR package in your browser

Any scripts or data that you put into this service are public.

LifeInsureR documentation built on June 15, 2025, 1:08 a.m.