tests/testthat/test-DTwrappers2.R

library(testthat)
library(data.table)
library(DTwrappers2)

# Ensure the iris dataset is in the data.table format
data("iris")
setDT(iris)

# Manipulate the iris dataset as described in your Rmd file
RNGversion(vstr = "3.6")
set.seed(47)
iris$noise <- rnorm(n = nrow(iris))
iris$noise[c(1, 51)] <- c("0.13ABC", "N/A")

describe("DTwrappers2 functionality tests", {
  describe("Tests for character coercion culprit identification", {
    it("identifies character coercion culprits accurately", {
      result <- character.coercion.culprits(x = iris$noise, threshold.for.numeric = 0.8)
      expect_type(result, "character")
      expect_length(result, 2)
      expect_true("0.13ABC" %in% result)
      expect_true("N/A" %in% result)
    })

    it("confirms no culprits in numeric variables", {
      result <- character.coercion.culprits(x = iris$Sepal.Length, threshold.for.numeric = 0.8)
      expect_type(result, "double")
      expect_length(result, 0)
    })
  })

  describe("Tests for removing erroneous characters", {
    it("removes erroneous characters and converts to numeric where possible", {
      modified_values <- remove.erroneous.characters(x = iris$noise[1:5], threshold.for.numeric = 0.8, variable.should.be = "numeric")
      expect_type(modified_values, "double")
      expect_true(is.na(modified_values[1]))
      expect_equal(modified_values[2], as.numeric(iris$noise[2]))
    })

  })
})

Try the DTwrappers2 package in your browser

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

DTwrappers2 documentation built on June 22, 2024, 9:17 a.m.