tests/testthat/test-sunique.R

# vect numerique
test_that(
  "sunique testé sur : numeric, alpha, alphanum, NA, NULL, NaN, c(NA, NULL, NaN)",
  {
    # numeric
    actual <- sunique(c(1,2,3,4,2,3,4,3,4,4), decreasing = FALSE)  # croissant
    expect_equal(actual, c(1,2,3,4))

    actual <- sunique(c(1,2,3,4,2,3,4,3,4,4), decreasing = TRUE)  # decroissant
    expect_equal(actual, c(4,3,2,1))

    # alpha
    actual <- sunique(c("c", "b", "a", "b", "c"), decreasing = FALSE)
    expect_equal(actual, c("a", "b", "c"))

    actual <- sunique(c("c", "b", "a", "b", "c"), decreasing = TRUE)
    expect_equal(actual, c("c","b","a"))

    # alphanum
    actual <- sunique(c(1,2,3,4,2,3,4,3,4,4, "a", "a", "b"), decreasing = FALSE)
    expect_equal(actual, c(1,2,3,4,"a","b"))

    actual <- sunique(c(1,2,3,4,2,3,4,3,4,4, "a", "a", "b"), decreasing = TRUE)
    expect_equal(actual, c("b","a",4,3,2,1))

    # NA
    actual <- sunique(c(1,1,2,NA), decreasing = F, na.last = T)  # croissant, NA first
    expect_equal(actual, c(1,2,NA))

    actual <- sunique(c(1,1,2,NA), decreasing = T, na.last = T)  # decroissant, NA first
    expect_equal(actual, c(2,1,NA))

    actual <- sunique(c(1,1,2,NA), decreasing = T, na.last = F)  # decroissant, NA last
    expect_equal(actual, c(NA,2,1))

    actual <- sunique(c(1,1,2,NA), decreasing = F, na.last = NA) # croissant, pas de NA
    expect_equal(actual, c(1,2))

    # NULL
    actual <- sunique(c(1,1,2, NULL), decreasing = F, na.last = F) # NULL n'apparait NULL part!
    expect_equal(actual, c(1,2))

    # NaN
    actual <- sunique(c(1,1,2,NaN), decreasing = F, na.last = T)
    expect_equal(actual, c(1, 2, NaN))

    # NaN + NA
    actual <- sunique(c(1,1,2,NaN, NA), decreasing = F, na.last = T)
    expect_equal(actual, c(1, 2, NaN, NA))

    actual <- sunique(c(1,1,2,NaN, NA), decreasing = T, na.last = F)
    expect_equal(actual, c(NaN, NA, 2, 1))

    actual <- sunique(c(1,1,2,NaN, NA), decreasing = T, na.last = NA)  # ne pas afficher
    expect_equal(actual, c(2,1))

  }
)
guiboucher/INESSS-inesss documentation built on April 20, 2020, 10:47 p.m.