tests/portfolioBasic.exposure.test.R

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

library(portfolio)

datapath = "portfolioBasic.exposure.test.RData"
load(datapath)

## save(data, exp.1, x, file=datapath, compress=TRUE, version=2)

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

## ## Construct by.var's.  Note that the assigned vectors are
## ## deliberately recycled.

## data$by.var.1 <- c("1","2")
## data$by.var.2 <- c("1","2","3","4")
## data$by.var.3 <- c(-1,0,0,1)

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

exp.1.test <- exposure(x, exp.var = c("by.var.1","by.var.2","by.var.3"))
# class(exp.1@data$numeric$variable) 

## Function to test equality of data frame components of the exposure
## object's data slot.  Different default handling of row.names in
## 2.4.0 makes it necessary to compare column-by-column.

exp.df.equal <- function(e1, e2) {
  return(all.equal(e1$variable, e2$variable) &&
         all.equal(e1$long,     e2$long) &&
         all.equal(e1$short,    e2$short) &&
         all.equal(e1$exposure, e2$exposure))
}

stopifnot(all.equal(names(exp.1@data), names(exp.1.test@data)))
stopifnot(exp.df.equal(exp.1@data$numeric,  exp.1.test@data$numeric))
stopifnot(exp.df.equal(exp.1@data$by.var.1, exp.1.test@data$by.var.1))
stopifnot(exp.df.equal(exp.1@data$by.var.2, exp.1.test@data$by.var.2))
dgerlanc/portfolio documentation built on Aug. 19, 2024, 11:31 p.m.