context("Import .bib to tibble")
bib <- bib2df(system.file("extdata", "bib2df_testfile_3.bib", package = "bib2df"))
test_that("bib imported as tibble", {
expect_true(inherits(bib, "tbl"))
})
test_that("bib has correct names", {
expect_true(all(names(bib2df:::empty) %in% names(bib)))
})
test_that("bib has correct dimensions", {
expect_true(nrow(bib) == 3L)
expect_true(ncol(bib) >= 25L)
})
context("Import .bib with one entry to tibble")
bib1 <- bib2df(system.file("extdata", "bib2df_testfile_2.bib", package = "bib2df"))
test_that("bib imported as tibble", {
expect_true(inherits(bib1, "tbl"))
})
test_that("bib has correct names", {
expect_true(all(names(bib2df:::empty) %in% names(bib1)))
})
test_that("bib has correct dimensions", {
expect_true(nrow(bib1) == 1L)
expect_true(ncol(bib1) >= 25L)
})
# context("Export .tbl to .bib")
#
# test_that("df2bib() works", {
# expect_true(file.exists(df2bib(bib, bib2 <- tempfile())))
# expect_true(identical(bib, bib2df(bib2)))
# expect_true(identical(readChar(x <- df2bib(bib, tempfile()), 1), "@"))
# })
context("Helper functions")
test_that("capitalize() works", {
expect_true(capitalize("TEST") == "Test")
expect_true(capitalize("Test") == "Test")
})
test_that("na_replace() works", {
df <- data.frame(a = NA, b = 1)
expect_true(na_replace(df)$a[1] == "")
})
context("Error messages and exception handling")
test_that("df2bib() throws error messages", {
df <- data.frame()
expect_error(df2bib(df, 1234),
"Invalid file path: Non-character supplied.",
fixed = TRUE)
expect_error(df2bib(df, "/not/a/valid/file/location.bib"),
"Invalid file path: File is not writeable.",
fixed = TRUE)
})
test_that("bib2df() throws error messages", {
expect_error(bib2df(4),
"Invalid file path: Non-character supplied.",
fixed = TRUE)
expect_error(bib2df("/a/n/y/where/any.bib"),
"Invalid file path: File is not readable.",
fixed = TRUE)
})
test_that("bib2df() returns 'empty' data.frame", {
write("", t <- tempfile())
expect_true(identical(bib2df(t), bib2df:::empty))
})
context("Allow symbols in fields, especially @ and =")
test_that("bib2df() allows '@' and '=' in fields", {
bib <- bib2df(system.file("extdata", "bib2df_testfile_1.bib", package = "bib2df"))
expect_true(identical(bib$TITLE[1], "The C@C60 endohedral complex"))
expect_true(identical(bib$ABSTRACT[1], "Foo bar (F-st = 0.81, P < 0.001) bla bla."))
})
context("Issue #29")
test_that("Issue #29", {
bib <- bib2df(system.file("extdata", "bib2df_testfile_issue_29.bib", package = "bib2df"))
expect_true(identical(bib$TITLE[1], "A grammar of the {Kuku} {Yalanji} language of north {Queensland}"))
expect_true(identical(bib$ADDRESS[2], "Cambridge"))
})
context("Allow for tags with _ and without spaces before =")
test_that("bib2df() allows any number of blanks before =", {
bib <- bib2df(system.file("extdata", "bib2df_testfile_4.bib", package = "bib2df"))
supplied_cols <- c("AUTHOR", "TITLE", "JOURNAL", "YEAR", "ABSTRACT")
expect_false(any(is.na(bib[supplied_cols])))
})
test_that("bib2df() allows for _ in tab name", {
bib <- bib2df(system.file("extdata", "bib2df_testfile_4.bib", package = "bib2df"))
supplied_col <- "AUTHOR_KEYWORDS"
expect_false(any(is.na(bib[supplied_col])))
})
context("Issue #31")
test_that("Issue #31", {
bib <- bib2df(system.file("extdata", "bib2df_testfile_issue_31.bib", package = "bib2df"),
merge_lines = TRUE)
expect_false(is.na(bib$AUTHOR[1]))
expect_false(identical(bib$AUTHOR[1], ""))
expect_false(is.na(bib$TITLE[1]))
expect_false(identical(bib$TITLE[1], ""))
expect_false(is.na(bib$ABSTRACT[1]))
expect_false(identical(bib$ABSTRACT[1], ""))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.