Nothing
context("bib")
test_that("bib works fine", {
fn_Rdpack <- system.file("REFERENCES.bib", package = "Rdpack")
bibs_Rdpack <- if(packageVersion("rbibutils") >= '2.1.1')
readBib(fn_Rdpack) else readBib(fn_Rdpack, encoding = "UTF-8")
fn_rb <- system.file("REFERENCES.bib", package = "rbibutils")
bibs_rb <- if(packageVersion("rbibutils") >= '2.1.1')
readBib(fn_rb) else readBib(fn_rb, encoding = "UTF-8")
.toRd_styled(bibs_rb, "Rdpack")
.toRd_styled(bibs_rb[["Rpackage:Rdpack"]], "Rdpack")
.toRd_styled(bibs_rb[["Rpackage:Rdpack"]], "rbibutils", style = "JSSRd")
set_Rdpack_bibstyle("JSSRd")
set_Rdpack_bibstyle("JSSLongNames")
## parenthesised
expect_equal(insert_citeOnly("Rpackage:Rdpack", package = "rbibutils"),
"(Boshnakov 2020)")
expect_equal(insert_citeOnly("Rpackage:Rdpack;nobrackets", package = "rbibutils"),
"Boshnakov 2020")
## using @
expect_equal(insert_citeOnly("@see also @Rpackage:Rdpack", package = "rbibutils"),
"(see also Boshnakov 2020)")
expect_equal(insert_citeOnly("@see also @Rpackage:Rdpack;nobrackets", package = "rbibutils"),
"see also Boshnakov 2020")
expect_equal(insert_citeOnly("@see also @Rpackage:Rdpack among others;nobrackets", package = "rbibutils"),
"see also Boshnakov 2020 among others")
## textual
expect_equal(insert_citeOnly("Rpackage:Rdpack;textual", package = "rbibutils"),
"Boshnakov (2020)")
expect_equal(insert_citeOnly("@@Rpackage:Rdpack;textual", package = "rbibutils"),
"Boshnakov (2020)")
## more than one key
expect_equal(insert_citeOnly(
"@see also @Rpackage:rbibutils and @parseRd;textual", package = "Rdpack"),
"see also Boshnakov and Putman (2020) and Murdoch (2010)")
expect_equal(insert_citeOnly(
"@see also @Rpackage:rbibutils and @parseRd, among others;textual", package = "Rdpack"),
"see also Boshnakov and Putman (2020) and Murdoch (2010), among others")
expect_equal(insert_citeOnly(
"@see also @Rpackage:rbibutils and @parseRd", package = "Rdpack"),
"(see also Boshnakov and Putman 2020 and Murdoch 2010)")
expect_equal(insert_citeOnly(
"@see also @Rpackage:rbibutils and @parseRd;textual", package = "Rdpack"),
"see also Boshnakov and Putman (2020) and Murdoch (2010)")
expect_equal(insert_citeOnly(
"@see also @Rpackage:rbibutils and @parseRd;textual", package = "Rdpack",
bibpunct = c("[", "]")),
"see also Boshnakov and Putman [2020] and Murdoch [2010]")
expect_equal(insert_citeOnly(
"@see also @Rpackage:rbibutils and @parseRd;nobrackets", package = "Rdpack"),
"see also Boshnakov and Putman 2020 and Murdoch 2010")
expect_equal(insert_citeOnly(
"@see also @Rpackage:rbibutils and @parseRd;nobrackets", package = "Rdpack"),
"see also Boshnakov and Putman 2020 and Murdoch 2010")
## use brackets instead of parentheses
expect_equal(insert_citeOnly("Rpackage:Rdpack;textual", package = "rbibutils",
bibpunct = c("[", "]")),
"Boshnakov [2020]")
expect_equal(insert_citeOnly("Rpackage:Rdpack", package = "rbibutils",
bibpunct = c("[", "]")),
"[Boshnakov 2020]")
expect_equal(insert_citeOnly("Rpackage:Rdpack", package = "rbibutils",
bibpunct = c("[", "]"), dont_cite = TRUE),
character(0))
expect_error(insert_citeOnly("Rpackage:Rdpack;textual", bibpunct = c("[", "]")),
"argument 'package' must be provided")
expect_error(insert_citeOnly(c("Rpackage:Rdpack;textual", "xxxxx"),
"`keys' must be a character string"))
insert_ref("Rpackage:Rdpack", package = "rbibutils")
## missing keys
expect_warning(insert_ref("xxx", package = "rbibutils"))
expect_warning(insert_citeOnly(
"@see also @Rpackage:rbibutils and @parseRd;nobrackets @kikiriki", package = "Rdpack"))
## "possibly non-existing or duplicated key(s) in bib file from package ..."
## TODO: this tries to load package "xxx" and gives error but finishes ok and returns a
## dummy reference, as expected.
##
## Why and which instruction tries to load package "yyy"? Maybe in .Rd_styled?
## It is sufficient that the package is installed, it doesn't need to be loadable.
## expect_warning(insert_ref("xxx", package = "yyy")) # missing package
expect_warning(insert_ref("xxx", package = "yyy"))
insert_all_ref(matrix(c("parseRd,Rpack:bibtex", "Rdpack"), ncol = 2))
insert_all_ref(matrix(c("parseRd,Rpack:bibtex", "Rdpack"), ncol = 2), empty_cited = TRUE)
class(bibs_rb) <- c("bibentryRd", class(bibs_rb))
expect_output(print(bibs_rb))
## after the fix of issue #25:
## (Diaz and López-Ibá{ñ}ez 2021) and Diaz and López-Ibá{ñ}ez (2021)
## (before the fix the braces were escaped and appeared in the rendered citation)
expect_false(grepl("\\\\", insert_citeOnly("DiaLop2020ejor", "Rdpack")))
expect_false(grepl("\\\\", insert_citeOnly("DiaLop2020ejor;textual", "Rdpack")))
## after fix of issue #26:
## before the fix it was necessary to manually remove the backslash from \&, \_, etc.
## in the bib file. Now the backslashes are removed by Rdpack
##
## fix in August 2023 for a change in R-devel (citation.R):
## resaved 'dummyArticle.rds' and conditioned on R-devel r84986.
##
## Previously the rendered version of the 'note' field contained a superfluous ' .'.
## This was fixed in R-devel r84986 (or somewhat earlier).
## After the change in R-devel, we get with the old dummyArticle.rds:
## > waldo::compare(readRDS("tests/testthat/dummyArticle.rds"),
## insert_all_ref(matrix(c("dummyArticle", "Rdpack"), ncol = 2)))
## lines(old) vs lines(new)
## "A. ZZZ (2018)."
## "\\dQuote{A relation between several fundamental constants: \\eqn{e^{i\\pi}=-1}.}"
## "\\emph{A non-existent journal with the formula \\eqn{L_2} in its name & an ampersand which is preceded by a backslash in the bib file.}."
## - "This reference does not exist. It is a test/demo that simple formulas in BibTeX files are OK. A formula in field 'note': \\eqn{c^2 = a^2 + b^2}. ."
## + "This reference does not exist. It is a test/demo that simple formulas in BibTeX files are OK. A formula in field 'note': \\eqn{c^2 = a^2 + b^2}."
##
## (notice '. .' at the end of the old string)
if(is.numeric(svnrev <- R.Version()$'svn rev') && svnrev >= 84986)
expect_known_value(insert_all_ref(matrix(c("dummyArticle", "Rdpack"), ncol = 2)),
"dummyArticle.rds", update = FALSE)
## makeVignetteReference("Rdpack", 1)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.