tests/portfolioBasic.test.R

################################################################################
##
## $Id: portfolioBasic.test.R 346 2006-10-01 05:08:55Z enos $
##
## Tests for the portfolioBasic class.
##
################################################################################

library(portfolio)

load("portfolioBasic.test.RData")

## save(data, x, file = "portfolioBasic.test.RData", compress = TRUE)

data <- data.frame(id = 1:20, in.var = 1:20)
data$in.var <- as.numeric(data$in.var)

x <- new("portfolioBasic", in.var = "in.var", type = "sigmoid", size = 8, data = data)
x <- create(x)

## All weights should sum to 0; side weights sum to 1.

stopifnot(
          all.equal(sum(x@weights$weight), 0),
          all.equal(sum(x@weights$weight[x@weights$weight > 0]), 1)
          )

## Cut the weights in half and then use the scaler to fix.

x@weights$weight <- x@weights$weight / 2
x <- scaleWeights(x)

stopifnot(
          all.equal(sum(x@weights$weight), 0),
          all.equal(sum(x@weights$weight[x@weights$weight > 0]), 1)
          )

## I've removed tests involving calling the balance method and then
## checking exposures.  The Debian machine at CRAN encounters a
## failure, likely due to a differing .Machine$double.eps used in
## all.equal.  I couldn't reproduce using -ffloat-store in CFLAGS, but
## these tests aren't important for testing portfolioBasic or
## exposures, so I'm taking them out.

## I should add tests that check cases where a single side has 0
## exposure and where both sides have 0 exposure to a factor level.

Try the portfolio package in your browser

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

portfolio documentation built on July 10, 2021, 5:08 p.m.