tests/testthat/test-cat_unique_count.R

df1 <- data.frame(
  name = c("Amy","Tony","Jessica"),
  age = c(18,21,30),
  hobby = c("lab","quiz","swim")
)

df2 <- data.frame()

df <- data.frame(
  a = 1:4,
  b = c('1', '2', '4', '3'),

  c = c('a', 'b', 'c', 'c'),
  d = c('01-05-2002', '02-05-2002',
        '02-06-2002', '03-05-2002'),
  e = c(01-05-2002, 02-05-2002,
        02-06-2002, 03-05-2002),
  f = c(1 , 2, 3, 4)
)

# test for the input type
test_that("The input should be a dataframe", {
  expect_error(cat_unique_count( c("a", "b", "c")))
  expect_error(cat_unique_count(45))
})

# test for empty data frame
test_that("The input dataframe is empty", {
  expect_error(cat_unique_count(df2))
})


# test for data frame column names and values
test_that("Wrong ouput", {
  expect_true(all.equal( c("feature name" , "unique count"),  colnames(cat_unique_count(df1))))
  expect_true(all.equal( c("name", "hobby"),  as.character(cat_unique_count(df1)$"feature name")))
  expect_true(all.equal( c(3, 3),  as.numeric(cat_unique_count(df1)$"unique count")))

})

# test for test for data frame column names and values
test_that("The order of output dataframe is not correct", {
  expect_true(all.equal( c("feature name" , "unique count"),  colnames(cat_unique_count(df))))
  expect_true(all.equal(c(4, 3),  as.numeric(cat_unique_count(df)$"unique count")))
  expect_true(all.equal(c('b', 'c'),  as.character(cat_unique_count(df)$"feature name")))

})

# test for data frame shape
test_that("This is an unexpected dimension", {
  expect_true(all.equal(2, ncol(cat_unique_count(df))))
  expect_true(all.equal(2, nrow(cat_unique_count(df))))
  expect_true(all.equal( c(2, 2),  dim(cat_unique_count(df))))
})
UBC-MDS/slimreda documentation built on Feb. 7, 2022, 9:12 a.m.