# test_lucid.R # Time-stamp: <23 Apr 2019 15:05:44 c:/x/rpack/lucid/tests/testthat/test_lucid.R> test_that("default", { expect_equal(lucid(letters), letters) }) test_that("vector", { set.seed(456) lvec <- runif(10) expect_equal(lucid(lvec), c("0.0896", "0.211 ", "0.733 ", "0.852 ", "0.788 ", "0.332 ", "0.0824", "0.286 ", "0.238 ", "0.385 ")) lvec[5] <- NA expect_equal(lucid(lvec), c("0.0896", "0.211 ", "0.733 ", "0.852 ", " NA", "0.332 ", "0.0824", "0.286 ", "0.238 ", "0.385 ") ) lvec <- c(1.23, NA, 123, 123000) expect_equal(lucid(lvec), c(" 1.23", " NA", " 123 ", "123000 ")) expect_equal(lucid(lvec, na.value=""), c(" 1.23", " ", " 123 ", "123000 ")) expect_equal( lucid(lvec, na.value="--"), c(" 1.23", " --", " 123 ", "123000 ") ) }) test_that("data.frame", { ldf <- iris[1:3,3:5] expect_equal( lucid(ldf), structure(list(Petal.Length = c("1.4", "1.4", "1.3"), Petal.Width = c("0.2", "0.2", "0.2"), Species = structure(c(1L, 1L, 1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Petal.Length", "Petal.Width", "Species"), row.names = c(NA, 3L), class = "data.frame") ) ldf[2,] <- NA expect_equal( lucid(ldf), structure(list(Petal.Length = c("1.4", " NA", "1.3"), Petal.Width = c("0.2", " NA", "0.2"), Species = structure(c(1L, NA, 1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Petal.Length", "Petal.Width", "Species"), row.names = c(NA, 3L), class = "data.frame") ) expect_equal( lucid(ldf, na=""), structure(list(Petal.Length = c("1.4", " ", "1.3"), Petal.Width = c("0.2", " ", "0.2"), Species = structure(c(1L, NA, 1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Petal.Length", "Petal.Width", "Species"), row.names = c(NA, 3L), class = "data.frame") ) expect_equal( lucid(ldf, na="--"), structure(list(Petal.Length = c("1.4", " --", "1.3"), Petal.Width = c("0.2", " --", "0.2"), Species = structure(c(1L, NA, 1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Petal.Length", "Petal.Width", "Species"), row.names = c(NA, 3L), class = "data.frame") ) expect_equal( lucid(ldf, dig=2, na="--"), structure(list(Petal.Length = c("1.4", " --", "1.3"), Petal.Width = c("0.2", " --", "0.2"), Species = structure(c(1L, NA, 1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Petal.Length", "Petal.Width", "Species"), row.names = c(NA, 3L), class = "data.frame") ) }) test_that("matrix", { lmat <- as.matrix(mtcars[1:3,1:3]) lmat[1,1] <- lmat[2,2] <- lmat[3,3] <- NA expect_equal( lucid(lmat), structure(c(" NA", "21 ", "22.8", " 6", "NA", " 4", "160", "160", " NA"), .Dim = c(3L, 3L), .Dimnames = list(c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710"), c("mpg", "cyl", "disp"))) ) expect_equal( lucid(lmat, na=""), structure(c(" ", "21 ", "22.8", " 6", "", " 4", "160", "160", " "), .Dim = c(3L, 3L), .Dimnames = list(c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710"), c("mpg", "cyl", "disp"))) ) expect_equal( lucid(lmat, na=" -"), structure(c(" -", "21 ", "22.8", " 6", " -", " 4", "160", "160", " -"), .Dim = c(3L, 3L), .Dimnames = list(c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710"), c("mpg", "cyl", "disp"))) ) expect_equal( lucid(lmat, dig=2, na="-"), structure(c("-", "21", "23", " 6", "-", " 4", "160", "160", " -" ), .Dim = c(3L, 3L), .Dimnames = list(c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710"), c("mpg", "cyl", "disp"))) ) # To omit quotes from matrix output expect_equal( noquote(lucid(lmat, dig=2, na="-")), structure(c("-", "21", "23", " 6", "-", " 4", "160", "160", " -" ), .Dim = c(3L, 3L), .Dimnames = list(c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710"), c("mpg", "cyl", "disp")), class = "noquote") ) #print(lucid(lmat, dig=2, na="-"), quote=FALSE) }) test_that("list", { set.seed(456) ll <- list(lvec=runif(10),ldf=iris[1:3,3:5],lmat=as.matrix(mtcars[1:3,1:3])) expect_equal( lucid(ll), structure(list(lvec = c("0.0896", "0.211 ", "0.733 ", "0.852 ", "0.788 ", "0.332 ", "0.0824", "0.286 ", "0.238 ", "0.385 "), ldf = structure(list(Petal.Length = c("1.4", "1.4", "1.3" ), Petal.Width = c("0.2", "0.2", "0.2"), Species = structure(c(1L, 1L, 1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Petal.Length", "Petal.Width", "Species"), row.names = c(NA, 3L), class = "data.frame"), lmat = structure(c("21 ", "21 ", "22.8", "6", "6", "4", "160", "160", "108"), .Dim = c(3L, 3L), .Dimnames = list( c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710"), c("mpg", "cyl", "disp")))), .Names = c("lvec", "ldf", "lmat")) ) }) test_that("tibble", { # when a tibble is printed: # strings with spaces are printed with quotes # strings without spaces have no quotes # since lucid uses spaces to align columns of strings, print.tbl_df would # strip some quotes, but not others; making lucid results look weird prob <- structure(list(id = c("A", "B", "C"), P0 = c(" a","b","c "), P1 = c(-1, 0, 1), P2 = c(3.3175e-140, 1.0637e-165, 1.1279e-157)), .Names = c("id","P1", "P2","P3"), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame")) print(prob) print(lucid(prob)) })