Nothing
test_that("calculate utility for parameter != 1", {
risk_aversion <- 1
risk_tolerance <- 1 / risk_aversion
if (interactive()) print(risk_tolerance)
expect_equal(calc_utility(-1, risk_tolerance), 0)
expect_equal(calc_utility(0, risk_tolerance), 0)
expect_equal(calc_utility(1, risk_tolerance), 0)
expect_equal(calc_utility(0.5, risk_tolerance), -0.69314718)
expect_equal(calc_utility(1.5, risk_tolerance), 0.405465108)
risk_aversion <- 2
risk_tolerance <- 1 / risk_aversion
if (interactive()) print(risk_tolerance)
expect_equal(calc_utility(-1, risk_tolerance), 0)
expect_equal(calc_utility(0, risk_tolerance), 0)
expect_equal(calc_utility(1, risk_tolerance), 0)
expect_equal(calc_utility(0.5, risk_tolerance), -1)
expect_equal(calc_utility(2, risk_tolerance), 0.5)
risk_aversion <- 3
risk_tolerance <- 1 / risk_aversion
if (interactive()) print(risk_tolerance)
expect_equal(calc_utility(-1, risk_tolerance), 0)
expect_equal(calc_utility(0, risk_tolerance), 0)
expect_equal(calc_utility(1, risk_tolerance), 0)
expect_equal(calc_utility(0.5, risk_tolerance), -1.5)
expect_equal(calc_utility(2, risk_tolerance), 0.375)
risk_tolerance <- 0
expect_equal(calc_utility(-1, risk_tolerance), 0)
expect_equal(calc_utility(0, risk_tolerance), 0)
expect_equal(calc_utility(1, risk_tolerance), 0)
expect_equal(calc_utility(0.5, risk_tolerance), 0)
expect_equal(calc_utility(2, risk_tolerance), 0)
risk_aversion <- 100
risk_tolerance <- 1 / risk_aversion
if (interactive()) print(risk_tolerance)
expect_equal(calc_utility(-1, risk_tolerance), 0)
expect_equal(calc_utility(0, risk_tolerance), 0)
expect_equal(calc_utility(1, risk_tolerance), 0)
expect_equal(calc_utility(2, risk_tolerance), 0.01010101)
})
test_that("calculate utility for parameter == 1", {
risk_aversion <- 1
risk_tolerance <- 1 / risk_aversion
if (interactive()) print(risk_tolerance)
expect_equal(calc_utility(-1, risk_tolerance), 0)
expect_equal(calc_utility(0, risk_tolerance), 0)
expect_equal(calc_utility(1, risk_tolerance), 0)
expect_equal(round(calc_utility(0.5, risk_tolerance), 2), -0.69)
expect_equal(round(calc_utility(1.5, risk_tolerance), 2), 0.41)
})
test_that("calculate utility when spending is zero", {
expect_equal(calc_utility(0, 0), 0)
expect_equal(calc_utility(0, 1/2), 0)
expect_equal(calc_utility(0, 1), 0)
})
test_that("calculate utility when x is negative", {
expect_equal(calc_utility(x = -1, 1/2), 0)
expect_equal(calc_utility(x = -1, 0), 0)
expect_equal(calc_utility(x = -1, 1), 0)
})
test_that("calculate utility when x is a vector with negative or zero", {
expect_equal(
calc_utility(
x = c(exp(1), 0, -1, 0, -1),
parameter = 1/ c(1, 2, 2, 1, 1)
),
c(1, 0, 0, 0, 0))
})
test_that("calculate utility on a vector", {
risk_aversion <- c(2, 2, 2)
risk_tolerance <- 1 / risk_aversion
spending <- c(1, 0.5, 2)
expect_equal(
calc_utility(spending, risk_tolerance),
c(0, -1, 0.5))
})
test_that("calculating inverse utility", {
consumption <- 1
parameter <- 0
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
parameter <- 0.0001
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
parameter <- 0.1
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
parameter <- 0.2
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
parameter <- 0.9999
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
parameter <- 1
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
})
test_that("calculating inverse utility for a vector", {
consumption <- c(1, 2)
if (interactive()) print(consumption)
parameter <- 0.1
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
parameter <- 0.2
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
parameter <- 0.9999
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
parameter <- 1
expect_equal(
calc_inverse_utility(calc_utility(consumption, parameter), parameter),
consumption
)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.