Path: blob/master/inst/tests/test_demo_risk_budgets.R
1433 views
1##### Load packages #####2require(testthat)3require(PortfolioAnalytics)45##### Source Demo Script #####6source(system.file("demo/demo_risk_budgets.R", package="PortfolioAnalytics"))789context("Risk Budget Optimizations")1011context("risk budget objective ES max_prisk")1213test_that("rbES.portf contains risk_budget_objective",14{ expect_that(inherits(rbES.portf$objectives[[2]], "risk_budget_objective"), is_true()) })1516test_that("rbES.portf contains ES risk budget objective",17{ expect_that(rbES.portf$objectives[[2]]$name == "ES", is_true()) })1819test_that("rbES.portf max_prisk is 0.4",20{ expect_equal(as.numeric(rbES.portf$objectives[[2]]$max_prisk), rep(0.4, 8)) })2122test_that("rbES.portf min_concentration is false",23{ expect_that(rbES.portf$objectives[[2]]$min_concentration, is_false()) })2425test_that("rbES.portf min_difference is false",26{ expect_that(rbES.portf$objectives[[2]]$min_difference, is_false()) })2728test_that("rbES.DE optimal weights is a numeric vector",29{ expect_that(is.numeric(extractWeights(rbES.DE)), is_true()) })3031test_that("rbES.DE optimization does not violate max_prisk",32{ expect_that(all(extractObjectiveMeasures(rbES.DE)$ES$pct_contrib_MES <= 0.4), is_true()) })3334context("risk budget objective ES min_concentration")3536test_that("eqES.portf contains risk_budget_objective",37{ expect_that(inherits(eqES.portf$objectives[[2]], "risk_budget_objective"), is_true()) })3839test_that("eqES.portf contains ES risk budget objective",40{ expect_that(eqES.portf$objectives[[2]]$name == "ES", is_true()) })4142test_that("eqES.portf min_concentration is false",43{ expect_that(eqES.portf$objectives[[2]]$min_concentration, is_true()) })4445test_that("eqES.portf min_difference is false",46{ expect_that(eqES.portf$objectives[[2]]$min_difference, is_false()) })4748test_that("eqES.RP optimal weights is a numeric vector",49{ expect_that(is.numeric(extractWeights(eqES.RP)), is_true()) })5051# This will be difficult to test for an exact value or limit52test_that("eqES.RP optimization pct_contrib_MES is a numeric vector",53{ expect_that(is.numeric(extractObjectiveMeasures(eqES.RP)$ES$pct_contrib_MES), is_true()) })5455context("risk budget objective StdDev max_prisk")5657test_that("rbStdDev.portf contains risk_budget_objective",58{ expect_that(inherits(rbStdDev.portf$objectives[[2]], "risk_budget_objective"), is_true()) })5960test_that("rbStdDev.portf contains StdDev risk budget objective",61{ expect_that(rbStdDev.portf$objectives[[2]]$name == "StdDev", is_true()) })6263test_that("rbStdDev.portf max_prisk is 0.25",64{ expect_equal(as.numeric(rbStdDev.portf$objectives[[2]]$max_prisk), rep(0.25, 8)) })6566test_that("rbStdDev.portf min_concentration is false",67{ expect_that(rbStdDev.portf$objectives[[2]]$min_concentration, is_false()) })6869test_that("rbStdDev.portf min_difference is false",70{ expect_that(rbStdDev.portf$objectives[[2]]$min_difference, is_false()) })7172test_that("rbStdDev.DE optimal weights is a numeric vector",73{ expect_that(is.numeric(extractWeights(rbStdDev.DE)), is_true()) })7475test_that("rbStdDev.DE optimization does not violate max_prisk",76{ expect_that(all(extractObjectiveMeasures(rbStdDev.DE)$ES$pct_contrib_MES <= 0.25), is_true()) })77787980