context("result-parsers")
raw_rec <- entrez_fetch(db="pubmed", id=20674752, rettype="xml")
xml_rec <- entrez_fetch(db="pubmed", id=20674752, rettype="xml", parsed=TRUE)
multi_rec <- entrez_fetch(db="pubmed",
id=c(22883857, 25042335, 20203609,11959827),
rettype="xml", parsed=TRUE)
parsed_raw <- parse_pubmed_xml(raw_rec)
parsed_rec <- parse_pubmed_xml(xml_rec)
parsed_multi <- parse_pubmed_xml(multi_rec)
multi_pmid_eg <- parse_pubmed_xml(
entrez_fetch(db="pubmed", id='29743284', rettype="xml")
)
test_that("pubmed file parsers work",{
expect_that(raw_rec, is_a("character"))
expect_that(parsed_raw, is_a("pubmed_record"))
expect_that(parsed_rec, is_a("pubmed_record"))
expect_that(names(parsed_rec), is_a("character"))
expect_that(parsed_rec$pmid, is_identical_to("20674752"))
expect_that(parsed_multi, is_a("multi_pubmed_record"))
expect_that(parsed_multi[[1]], is_a("pubmed_record"))
expect_that(length(parsed_multi), equals(4))
# Older (buggier) versions of the pubmed parser included data from every
# record in an xml file in each parsed record. If that error is
# re-introduced there will be 25 authors in each record and this will fail
expect_that(length(parsed_multi[[1]]$authors), equals(1))
# Bug #131 related to extracting all PMIDs from a pubmed xml that contained
# references, not just the one true pm od teh artcle. Testing we don't
# regress
expect_that(length(multi_pmid_eg$pmid), equals(1))
})
test_that("we can print pubmed records", {
expect_output(print(parsed_rec), "Pubmed record")
expect_output(print(parsed_multi), "List of 4 pubmed records")
})
test_that("We warn about unknown pubmed record types", {
rec = entrez_fetch(db="pubmed", id=25905152, rettype="xml")
expect_warning(parsed_rec <- parse_pubmed_xml(rec))
expect_output(print(parsed_rec), "Pubmed record \\(empty\\)")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.