tests/testthat/test-histReturn_functions.R

test_that("calcRandHistReturns", {
    idx <- sbi$Month >= as.Date("2023-01-01") & sbi$Month <= as.Date("2023-12-31")
    sbiSub <- sbi[idx,]
    expPortRet <- prod(sbiSub$Stocks * 0.6 + sbiSub$Bonds * 0.4 + 1)
    expInfl <- prod(sbiSub$Inflation + 1)
    rndReturns <- calcRandHistReturns(1, 0.6, 12, 0,sbiSub)
    expect_equal(length(rndReturns[1]), 1)
    expect_equal(rndReturns[[1]], expPortRet)
    expect_equal(rndReturns[[2]], expInfl)
    rndReturns <- calcRandHistReturns(1, 0.6, 12, 0.01, sbiSub)
    expect_equal(rndReturns[[1]], expPortRet + 0.01)
    expect_equal(rndReturns[[2]], expInfl)
    rndReturns <- calcRandHistReturns(10, 0.6, 12, 0, sbiSub)
    expect_equal(length(rndReturns$return), 10)
    expect_error(calcRandHistReturns(1, 0.6, 12, 0,
                                     sbi[sbi$Month >= as.Date("2023-01-01") & sbi$Month <= as.Date("2023-02-28")]))
})

test_that("simulateUsingHistory", {
    # The His1 simulation has no cash flows.  Expected value is ending value
    # times produce of returns.
    simEndingValue <- simTest$Hist1$simulation$portfolioValues[[500]][11]
    simExpValue <- prod(simTest$Hist1$simulation$rateOfReturns[[500]])*simTest$Hist1$startValue
    expect_equal(simEndingValue, simExpValue)
})
rexmacey/aasim documentation built on Oct. 29, 2024, 9:30 a.m.