context("as.BibEntry")
test_that("list to BibEntry", {
bib.l <- list(c(bibtype = "article", key = "mclean2014a",
title = "My New Article", author = "Mathew W. McLean",
journaltitle = "The Journal", date = "2014-01"),
c(bibtype = "article", key = "mclean2014b", title = "My Newer Article",
author = "Mathew W. McLean", journaltitle = "The Journal",
date = "2014-02"))
bib <- as.BibEntry(bib.l)
expect_is(bib, "BibEntry")
expect_equal(length(bib), 2L)
bib <- as.BibEntry(bib.l[1])
expect_is(bib, "BibEntry")
expect_equal(length(bib), 1L)
})
test_that("citation to BibEntry", {
bib <- as.BibEntry(citation())
expect_is(bib, "BibEntry")
expect_true(nzchar(bib$key))
})
test_that("is",
expect_true(is.BibEntry(as.BibEntry(citation())))
)
test_that("unlisted to BibEntry", {
bib <- list(c(bibtype = "article", key = "mclean2014a",
title = "My New Article",
author = "Mathew W. McLean", journaltitle = "The Journal",
date = "2014-01"),
c(bibtype = "article", key = "mclean2014b", title = "My Newer Article",
author = "Mathew W. McLean", journaltitle = "The Journal",
date = "2014-02"))
bib <- unlist(as.BibEntry(bib))
bib <- as.BibEntry(bib)
expect_is(bib, "BibEntry")
expect_equal(length(bib), 2L)
})
test_that("data.frame-BibEntry conversion", {
bib <- list(c(bibtype = "article", key = "mclean2014a",
title = "My New Article",
author = "Mathew W. McLean", journaltitle = "The Journal",
date = "2014-01-01"),
c(bibtype = "article", key = "mclean2014b", volume = 10,
title = "My Newer Article", author = "Mathew W. McLean",
journaltitle = "The Journal", date = "2014"))
bib <- as.BibEntry(bib)
bib.df <- as.data.frame(bib)
expect_is(bib.df, "data.frame")
expect_identical(rownames(bib.df), c("mclean2014a", "mclean2014b"))
expect_identical(colnames(bib.df), c("bibtype", "title", "author",
"journaltitle", "date", "volume"))
bib <- as.BibEntry(bib.df)
expect_is(bib, "BibEntry")
expect_equal(length(bib), 2L)
})
test_that("BibEntry to df multiple authors, single entry #51", {
bib.l <- list(c(bibtype = "article", key = "mclean2014a",
title = "My New Article",
author = "McLean, Mathew W. and Ruppert, David",
journaltitle = "The Journal", date = "2014-01-01"))
bib <- as.BibEntry(bib.l)
bib.df <- as.data.frame(bib)
expect_is(bib.df, "data.frame")
expect_equal(nrow(bib.df), length(bib.l))
expect_equal(bib.df[["author"]], "Mathew W. McLean and David Ruppert")
expect_equal(rownames(bib.df), unname(names(bib)))
expect_equal(colnames(bib.df), c("bibtype", unique(unlist(fields(bib)))))
})
test_that("BibEntry to df multiple authors, multiple entries", {
bib.l <- list(c(bibtype = "article", key = "mclean2014a",
title = "My New Article", editor = "Bob Smith",
author = "McLean, Mathew W. and Ruppert, David",
journaltitle = "The Journal", date = "2014-01-01"),
c(bibtype = "article", key = "mclean2014b", volume = 10,
title = "My Newer Article", author = "Mathew W. McLean",
journaltitle = "The Journal", date = "2014"))
bib <- as.BibEntry(bib.l)
bib.df <- as.data.frame(bib)
expect_is(bib.df, "data.frame")
expect_equal(nrow(bib.df), length(bib.l))
expect_equal(bib.df[["author"]], c("Mathew W. McLean and David Ruppert",
"Mathew W. McLean"))
expect_equal(bib.df[["editor"]], unname(c(bib.l[[1L]]["editor"], NA)))
expect_equal(rownames(bib.df), unname(names(bib)))
expect_equal(colnames(bib.df), c("bibtype", unique(unlist(fields(bib)))))
})
test_that("character to BibEntry", {
bib.c <- c(bibtype = "misc", author = "Mathew W. McLean", title = "A title",
year = 2012, key = "testkey")
bib <- as.BibEntry(bib.c)
expect_is(bib, "BibEntry")
## missing bibtype
expect_error(as.BibEntry(bib.c[-1]), "Object of class character")
## missing key
expect_error(as.BibEntry(bib.c[-5]), "Object of class character")
})
test_that("bibentry to BibEntry", {
bib.be <- bibentry("manual", author = "Bob Smith", title = "A manual",
year = 2012)
bib <- as.BibEntry(bib.be)
expect_is(bib, "BibEntry")
})
test_that("unclass'ed BibEntry to BibEntry", {
bib <- list(c(bibtype = "article", key = "mclean2014a",
title = "My New Article", author = "Mathew W. McLean",
journaltitle = "The Journal", date = "2014-01"),
c(bibtype = "article", key = "mclean2014b", title = "My Newer Article",
author = "Mathew W. McLean", journaltitle = "The Journal",
date = "2014-02"))
bib.u <- unclass(as.BibEntry(bib))
bib <- as.BibEntry(bib.u)
expect_is(bib, "BibEntry")
expect_equal(length(bib), 2L)
bib <- as.BibEntry(bib.u[1])
expect_is(bib, "BibEntry")
expect_equal(length(bib), 1L)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.