tests/testthat/test_addNoise.R

#Testing on data frame values

#data frame, numeric values without missing value

#load library
library(testthat)

set.seed(3)
sample_Data <- runif(15, 1, 100)
sample_Data <- array(sample_Data, dim = c(5,3))
sample_Data <- as.data.frame(sample_Data)

###########################################################################################################################################
test_that("data frame, numeric values (default noise, additive method)", {
  set.seed(3)
  fr <- addNoise(sample_Data)
  fr2 <- addNoise(sample_Data, noise = 20)
  expect_true(all(colMeans(abs(sample_Data-fr$xm))>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x)))>mean(colMeans(abs(fr2$xm-fr2$x))))
})
###########################################################################################################################################


###########################################################################################################################################
test_that("data frame, numeric values (noise = default, correlated method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "correlated")
  fr2 <- addNoise(sample_Data, noise = 20, method = "correlated")
  expect_true(all(colMeans(abs(sample_Data-fr$xm))>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x)))>mean(colMeans(abs(fr2$xm-fr2$x))))
})
###########################################################################################################################################


###########################################################################################################################################
test_that("data frame, numeric values (noise = default, correlated2 method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "correlated2")
  fr2 <- addNoise(sample_Data, delta = .01, method = "correlated2")
  expect_true(all(colMeans(abs(sample_Data-fr$xm))>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x)))>mean(colMeans(abs(fr2$xm-fr2$x))))
})
###########################################################################################################################################


###########################################################################################################################################
test_that("data frame, numeric values (noise = default, ROMM method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "ROMM")
  fr2 <- addNoise(sample_Data, noise = 20, method = "ROMM")
  expect_true(all(colMeans(abs(sample_Data-fr$xm))>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x)))>mean(colMeans(abs(fr2$xm-fr2$x))))
})
###########################################################################################################################################


set.seed(3)
sample_Data <- runif(30, 1, 100)
sample_Data <- array(sample_Data, dim = c(10,3))
sample_Data <- as.data.frame(sample_Data)

###########################################################################################################################################
test_that("data frame, numeric values (noise = default, outdect method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "outdect")
  fr2 <- addNoise(sample_Data, noise = 20, method = "outdect")
  expect_true(all(colMeans(abs(sample_Data-fr$xm))>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x)))>mean(colMeans(abs(fr2$xm-fr2$x))))
})
###########################################################################################################################################



#data frame, numeric values with missing value
set.seed(3)
sample_Data <- runif(15, 1, 100)
set.seed(3)
sample_Data[ceiling(runif(8, 1, length(sample_Data)))] <- NA
sample_Data <- array(sample_Data, dim = c(5,3))
sample_Data <- as.data.frame(sample_Data)
###########################################################################################################################################
test_that("data frame, numeric values with some NAs (default noise, additive method)", {
  set.seed(3)
  fr <- addNoise(sample_Data)
  fr2 <- addNoise(sample_Data, noise = 20)
  expect_true(all(colMeans(abs(sample_Data-fr$xm),na.rm=TRUE)>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x),na.rm=TRUE),na.rm=TRUE)>mean(colMeans(abs(fr2$xm-fr2$x),na.rm=TRUE),na.rm=TRUE))
})
###########################################################################################################################################



###########################################################################################################################################
test_that("data frame, numeric values with some NAs (noise = default, correlated2 method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "correlated2")
  fr2 <- addNoise(sample_Data, noise = 20, method = "correlated2")
  expect_true(all(colMeans(abs(sample_Data-fr$xm),na.rm=TRUE)>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x),na.rm=TRUE),na.rm=TRUE)>mean(colMeans(abs(fr2$xm-fr2$x),na.rm=TRUE),na.rm=TRUE))
})
###########################################################################################################################################


###########################################################################################################################################
test_that("data frame, numeric values with some NAs (noise = default, restr method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "restr")
  fr2 <- addNoise(sample_Data, noise = 20, method = "restr")
  expect_true(all(colMeans(abs(sample_Data-fr$xm),na.rm=TRUE)>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x),na.rm=TRUE),na.rm=TRUE)>mean(colMeans(abs(fr2$xm-fr2$x),na.rm=TRUE),na.rm=TRUE))
})
###########################################################################################################################################



set.seed(3)
sample_Data <- runif(30, 1, 100)
set.seed(3)
sample_Data[ceiling(runif(4, 1, length(sample_Data)))] <- NA
sample_Data <- array(sample_Data, dim = c(10,3))
sample_Data <- as.data.frame(sample_Data)
###########################################################################################################################################
test_that("data frame, numeric values with some NAs (noise = default, outdect method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "outdect")
  fr2 <- addNoise(sample_Data, noise = 20, method = "outdect")
  expect_true(all(colMeans(abs(sample_Data-fr$xm),na.rm=TRUE)>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x),na.rm=TRUE),na.rm=TRUE)>mean(colMeans(abs(fr2$xm-fr2$x),na.rm=TRUE),na.rm=TRUE))
})
###########################################################################################################################################

#data frame, numeric values with one entire column, one entire row with NA
set.seed(3)
sample_Data <- runif(15, 1, 100)
sample_Data <- array(sample_Data, dim = c(5,3))
set.seed(3)
sample_Data[,2] <- NA
sample_Data[3,] <- NA
sample_Data <- as.data.frame(sample_Data)
###########################################################################################################################################
test_that("data frame, numeric values with one entire column, one entire row with NAs (default noise, additive method)", {
  set.seed(3)
  expect_warning(fr <- addNoise(sample_Data))
  expect_warning(fr2 <- addNoise(sample_Data, noise = 20))
  expect_true(all(na.omit(colMeans(abs(fr$x-fr$xm),na.rm=TRUE))>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x),na.rm=TRUE),na.rm=TRUE)>mean(colMeans(abs(fr2$xm-fr2$x),na.rm=TRUE),na.rm=TRUE))
})
###########################################################################################################################################


###########################################################################################################################################
test_that("data frame, numeric values with one entire column, one entire row with NAs (noise = default, correlated method)", {
  set.seed(3)
  expect_error(fr <- addNoise(sample_Data, method = "correlated"))
})
###########################################################################################################################################

###########################################################################################################################################
test_that("data frame, numeric values with one entire column, one entire row with NAs (noise = default, correlated2 method)", {
  set.seed(3)
  expect_warning(fr <- addNoise(sample_Data, method = "correlated2"))
  expect_warning(fr2 <- addNoise(sample_Data, noise = 20, method = "correlated2"))
  expect_true(all(na.omit(colMeans(abs(fr$x-fr$xm),na.rm=TRUE))>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x),na.rm=TRUE),na.rm=TRUE)>mean(colMeans(abs(fr2$xm-fr2$x),na.rm=TRUE),na.rm=TRUE))
})
###########################################################################################################################################

###########################################################################################################################################
test_that("data frame, numeric values with one entire column, one entire row with NAs (noise = default, restr method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "restr")
  fr2 <- addNoise(sample_Data, noise = 20, method = "restr")
  expect_true(all(na.omit(colMeans(abs(fr$x-fr$xm),na.rm=TRUE))>0))
  expect_true(mean(colMeans(abs(fr$xm-fr$x),na.rm=TRUE),na.rm=TRUE)>mean(colMeans(abs(fr2$xm-fr2$x),na.rm=TRUE),na.rm=TRUE))
})
###########################################################################################################################################

###########################################################################################################################################
test_that("data frame, numeric values with one entire column, one entire row with NAs (noise = default, ROMM method)", {
  set.seed(3)
  fr <- addNoise(sample_Data, method = "ROMM")
  fr2 <- addNoise(sample_Data, noise = 20, method = "ROMM")
  expect_true(all(is.na(fr$xm)))
})
###########################################################################################################################################

set.seed(3)
sample_Data <- runif(30, 1, 100)
sample_Data <- array(sample_Data, dim = c(10,3))
set.seed(3)
sample_Data[,2] <- NA
sample_Data[3,] <- NA
sample_Data <-as.data.frame(sample_Data)

###########################################################################################################################################
test_that("data frame, numeric values with one entire column, one entire row with NAs (noise = default, outdect method)", {
  set.seed(3)
  fr <- expect_error(addNoise(sample_Data, method = "outdect"))
})
###########################################################################################################################################




##########################################################################################################
#Testing on sdc  values
#sdc object, numeric values without missing value

set.seed(3)
sample_Data <- runif(15, 1, 100)
sample_Data <- array(sample_Data, dim = c(5,3))
colnames(sample_Data) <- c("Var1", "Var2", "Var3")
sample_Data <- as.data.frame(sample_Data)
sample_Data <- createSdcObj(sample_Data, keyVars = c("Var1", "Var2", "Var3"), numVars = c("Var1", "Var2", "Var3"))


###########################################################################################################################################
test_that("sdc object, numeric values (default noise, additive method)", {
  set.seed(3)
  fr <- addNoise(sample_Data)
  fr2 <- addNoise(sample_Data, noise = 20)
  expect_true(all(na.omit(colMeans(abs(sample_Data@origData-fr@manipNumVars),na.rm=TRUE))>0))
  expect_true(mean(colMeans(abs(fr@manipNumVars-sample_Data@origData),na.rm=TRUE),na.rm=TRUE)>mean(colMeans(abs(fr2@manipNumVars-sample_Data@origData),na.rm=TRUE),na.rm=TRUE))
})
###########################################################################################################################################

Try the sdcMicro package in your browser

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

sdcMicro documentation built on Sept. 27, 2023, 5:07 p.m.