Nothing
context("fetching and parsing summary recs")
fake_ids <- sample(1e5, 501)
pop_ids = c("307082412", "307075396", "307075338", "307075274")
pop_summ_xml <- entrez_summary(db="popset",
id=pop_ids, version="1.0")
pop_summ_json <- entrez_summary(db="popset",
id=pop_ids, version="2.0")
pop_summ_xml2 <- entrez_summary(db="popset",
id=pop_ids, version="1.0", retmode="xml")
test_that("Functions to fetch summaries work", {
#tests
expect_that(pop_summ_xml, is_a("list"))
expect_that(pop_summ_json, is_a("list"))
expect_that(pop_summ_xml[[4]], is_a("esummary"))
expect_that(pop_summ_json[[4]], is_a("esummary"))
sapply(pop_summ_json, function(x)
expect_match(x[["title"]], "Muraenidae")
)
})
test_that("List elements in XML are parsable", {
rec <- entrez_summary(db="pubmed", id=25696867, version="1.0")
expect_named(rec$History)
expect_gt(length(rec$History), 0)
})
test_that("Version 2 xml records can be fetched and parsed", {
sapply(pop_summ_xml2, function(x)
expect_match(x[["Title"]], "Muraenidae"))
expect_that(length(pop_summ_xml2[[1]]), is_more_than(12))
})
test_that("JSON and XML objects are similar", {
#It would be nice to test whether the xml and json records
# have the same data in them, but it turns out they don't
# when they leave the NCBI, so let's ensure we can get some
# info from each file, even if they won't be exactly the same
sapply(pop_summ_xml, function(x)
expect_match(x[["Title"]], "Muraenidae"))
sapply(pop_summ_json, function(x)
expect_match(x[["title"]], "Muraenidae"))
expect_that(length(pop_summ_xml[[1]]), is_more_than(12))
expect_that(length(pop_summ_json[[1]]), is_more_than(12))
})
test_that("Error whent tring to fetch 1.0 summaries as json", {
expect_error(
entrez_summary("pubmed", id = fake_ids[1:10], version="1.0", retmode="json")
)
})
test_that("We can print summary records", {
expect_output(print(pop_summ_json), "List of 4 esummary records")
expect_output(print(pop_summ_json[[1]]), "esummary result with \\d+ items")
expect_output(print(pop_summ_xml), "List of 4 esummary records")
expect_output(print(pop_summ_xml[[1]]), "esummary result with \\d+ items")
})
test_that("We can detect errors in esummary records", {
expect_warning(
entrez_summary(db="pmc", id=c(4318541212,4318541), version="1.0")
)
expect_warning(
entrez_summary(db="pmc", id=c(4318541212,4318541))
)
})
test_that("We can detect errors in esummary returns", {
expect_error(
entrez_summary(db="pmc", id=fake_ids, version="2.0")
)
})
test_that("We can extract elements from esummary object", {
expect_that(extract_from_esummary(pop_summ_xml, c("Title", "TaxId")), is_a("matrix"))
expect_that(extract_from_esummary(pop_summ_xml, c("Title", "TaxId"), simplify=FALSE), is_a("list"))
expect_that(extract_from_esummary(pop_summ_xml2, c("Title", "TaxId"), simplify=FALSE), is_a("list"))
expect_that(extract_from_esummary(pop_summ_json, "title"), is_a("character"))
})
test_that("We can extract elements from a single esummary", {
expect_that(extract_from_esummary(pop_summ_xml[[1]], c("Title", "TaxId")), is_a("list"))
expect_that(extract_from_esummary(pop_summ_xml[[1]], "Gi"), is_a("integer"))
expect_that(extract_from_esummary(pop_summ_xml[[1]], "Gi", FALSE), is_a("list"))
})
test_that("We can get a list of one element if we ask for it", {
expect_that(entrez_summary(db="popset", id=307075396, always_return_list=TRUE), is_a("list"))
expect_that(entrez_summary(db="popset", id=307075396), is_a("esummary"))
})
test_that("We can fetch summaries on versioned sequences", {
old_rec = entrez_summary(db="nuccore", id="AF123456.1")
new_rec = entrez_summary(db="nuccore", id="AF123456.2")
expect_match(old_rec$title, "testis-specific mRNA")
expect_match(new_rec$title, "doublesex and mab-3 related transcription factor")
})
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.