test_that("get_one_to_one", {
foo <- data.frame(
Lab_Test_Long = c("Cholesterol, LDL", "Cholesterol, LDL", "Glucose"),
Lab_Test_Short = c("CLDL", "CLDL", "GLUC"),
LOINC = c(12345, 12345, 54321),
Person = c("Sam", "Bill", "Sam"),
stringsAsFactors = FALSE
)
expect_equal(
get_one_to_one(foo),
list(
c("Lab_Test_Long", "Lab_Test_Short", "LOINC")
)
)
# NA is respected as though it were any other value
foo <- data.frame(
Lab_Test_Long = c(NA, NA, "Glucose"),
Lab_Test_Short = c("CLDL", "CLDL", "GLUC"),
LOINC = c(12345, 12345, 54321),
Person = c("Sam", "Bill", "Sam"),
stringsAsFactors = FALSE
)
expect_equal(
get_one_to_one(foo),
list(
c("Lab_Test_Long", "Lab_Test_Short", "LOINC")
)
)
})
test_that("get_one_to_one: columns are only described once", {
expect_true(
!any(duplicated(unlist(
get_one_to_one(mtcars[1:3, ])
)))
)
expect_equal(
get_one_to_one(mtcars[1:3, ]),
list(
c("mpg", "cyl", "disp", "hp", "drat", "vs", "carb"),
c("wt", "qsec"),
c("am", "gear")
)
)
# Ensure that single column outputs are dropped
expect_equal(
get_one_to_one(mtcars[1:5, ]),
list(
c("mpg", "disp", "drat"),
c("cyl", "hp"),
c("am", "gear")
)
)
expect_message(
expect_equal(
get_one_to_one(mtcars),
list()
),
regexp = "No columns in `mtcars` map to each other"
)
})
test_that("nearly duplicated dates (second decimal place differs) to not cause failure (#543)", {
dates <- tibble::tibble(
modification_time =
structure(
c(1684261364.85967, 1684274880.48328, 1684261364.85967, 1684418379.74664, 1685105253.21695, 1684418379.76668, 1684279133.50118, 1684161951.81434, 1684281651.93175, 1678483898.72893, 1685103626.03424),
class = c("POSIXct", "POSIXt")
),
access_time =
structure(
c(1685040222.34459, 1685041485.59089, 1685105067.68569, 1685040222.51569, 1685105253.21795, 1685105067.73877, 1685105253.66953, 1685106417.48391, 1685105253.66853, 1685041485.59089, 1685103652.82275),
class = c("POSIXct", "POSIXt")
),
change_time = structure(
c(1684261364.85967, 1684274880.48328, 1684261364.85967, 1684418379.74664, 1685105253.21695, 1684418379.76668, 1684279133.50118, 1684161951.81434, 1684281651.93175, 1678483898.72893, 1685103626.03424),
class = c("POSIXct", "POSIXt")
)
)
expect_equal(
janitor::get_one_to_one(dates),
list(c("modification_time", "change_time"))
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.