context("Tests for train_test function")
library(binclass)
K = 4 # Number of predictors
n = 90 # Sample size
# Create data
y = sample( c( 'Yes', 'No' ), n, replace = T, prob = c(.3,.7) )
y = as.factor(y)
X = matrix( rnorm( n*K ), n, K )
# Set column names
colnames( X ) = paste( 'IV', 1:ncol(X), sep = '' )
# Create index for cross validation
index = c( rep( 1, n/3 ), rep( 2, 2*n/3 ) )
test_that( "train_test runs without error", {
expect_silent( train_test( 1, index, y, X ) )
})
dat = train_test( 1, index, y, X )
test_that( "train_test class works", {
expect_true( is.train_test( dat ) )
})
test_that( "size method works", {
expect_equal( size( dat ), 60 )
expect_equal( size( dat, F ), c( 60, 4 ) )
expect_equal( size( dat, train = F ), 30 )
expect_equal( size( dat, F, F ), c( 30, 4 ) )
})
test_that( "subset method works", {
expect_equal( y[ index == 2 ], subset( dat ) )
expect_equal( y[ index == 1 ], subset( dat, train = F ) )
zX = X[ index == 2, ]
m = colMeans( zX )
s = apply( zX, 2, sd )
zX = zX - matrix( m, nrow(zX), ncol(X), byrow = T )
zX = zX/matrix( s, nrow(zX), ncol(X), byrow = T )
expect_equal( zX, subset( dat, F ) )
zX = X[ index == 1, ]
zX = zX - matrix( m, nrow(zX), ncol(X), byrow = T )
zX = zX/matrix( s, nrow(zX), ncol(X), byrow = T )
expect_equal( zX, subset( dat, F, F ) )
})
test_that( "levels method works", {
expect_equal( levels(dat), levels(y) )
})
test_that( "dimnames method works", {
expect_equal( dimnames(dat), colnames( X ) )
})
levs = levels( y )
test_that( "as.integer method works", {
y_int = as.numeric( y[ index == 2 ] == levs[1] )
expect_equal( as.integer( dat ), y_int )
y_int = as.numeric( y[ index == 1 ] == levs[1] )
expect_equal( as.integer( dat, F ), y_int )
})
test_that( "print method works", {
expect_output( print( dat ) )
})
df_train = as.data.frame( dat )
df_test = as.data.frame( dat, train = F )
cmp_train = data.frame(
y = as.integer( dat, T )
)
cmp_train = cbind( cmp_train, subset( dat, F, T ) )
cmp_test = data.frame(
y = as.integer( dat, F )
)
cmp_test = cbind( cmp_test, subset( dat, F, F ) )
test_that( "as.data.frame method works", {
expect_equal( df_train, cmp_train )
expect_equal( df_test, cmp_test )
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.