Nothing
library(robotstxt)
up <- ping_service("nist")
test_that("NIST webbook is still OK with being scraped", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
expect_true(
paths_allowed("https://webbook.nist.gov/cgi/cbook.cgi",
user_agent = 'webchem (https://github.com/ropensci/webchem)')
)
})
test_that("nist_ri() works when only one row of data", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
testdf <- nist_ri("78-70-6", from = "cas",
type = "alkane",
polarity = "non-polar",
temp_prog = "custom")
expect_s3_class(testdf, "data.frame")
expect_true(!anyNA(testdf$RI))
testdf2 <-
nist_ri(
"HICYDYJTCDBHMZ-QVHKTLOISA-N",
from = "inchikey",
type = "alkane",
polarity = "non-polar",
temp_prog = "ramp"
)
expect_s3_class(testdf2, "data.frame")
expect_true(!anyNA(testdf2$RI))
})
test_that("nist_ri() works with inchikey query", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
testdf <- nist_ri(
"UHEPJGULSIKKTP-UHFFFAOYSA-N",
from = "inchikey",
type = "kovats",
polarity = "non-polar",
temp_prog = "isothermal"
)
expect_s3_class(testdf, "data.frame")
expect_true(!anyNA(testdf$RI))
})
test_that("nist_ri() works with inchi query", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
testdf <- nist_ri(
"1S/C8H14O/c1-7(2)5-4-6-8(3)9/h5H,4,6H2,1-3H3",
from = "inchi",
type = "kovats",
polarity = "non-polar",
temp_prog = "isothermal"
)
expect_s3_class(testdf, "data.frame")
expect_true(!anyNA(testdf$RI))
})
test_that("nist_ri() works with name query", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
testdf <- nist_ri(
"myrcene",
from = "name",
type = "kovats",
polarity = "non-polar",
temp_prog = "isothermal"
)
expect_s3_class(testdf, "data.frame")
expect_true(!anyNA(testdf$RI))
})
test_that("nist_ri() works with multiple queries", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
myRIs <-
nist_ri(
c("78-70-6", "13474-59-4"),
from = "cas",
type = "linear",
polarity = "non-polar",
temp_prog = "ramp"
)
expect_equal(unique(myRIs$query), c("78-70-6", "13474-59-4"),
ignore_attr = TRUE)
})
test_that("nist_ri() can return multiple types", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
out <- nist_ri("78-70-6", type = c("kovats","linear"), polarity="non-polar",
temp_prog = "custom")
expect_s3_class(out, "data.frame")
expect_true(!anyNA(out$RI))
expect_true(all(c("kovats", "linear") %in% out$type))
expect_true(all(out$polarity == "non-polar"))
expect_true(all(out$temp_prog == "custom"))
})
test_that("cas = is deprecated gently", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
expect_warning(
nist_ri(cas = "78-70-6"),
"`cas` is deprecated. Using `query` instead with `from = 'cas'`."
)
})
test_that("nist_ri works with NAs", {
skip_on_cran()
skip_if_not(up, "NIST Web Book is down")
test <- nist_ri("107-86-8",
from = "cas",
type = "linear",
polarity = "non-polar",
temp_prog = "ramp")
natest <- nist_ri(c(NA, "107-86-8"),
from = "cas",
type = "linear",
polarity = "non-polar",
temp_prog = "ramp")
expect_identical(
colnames(natest),
colnames(test)
)
expect_equal(unique(natest$query), c(NA, "107-86-8"), ignore_attr = TRUE)
})
test_that("a name returns CAS", {
test1 <- nist_ri("α-methyl-Benzenepropanamine", from = "name", type="kovats")
expect_equal(test1[[1,"cas"]], "22374-89-6")
test2 <- nist_ri("α-methyl-Benzenepropanamine", from = "name", type="lee")
expect_equal(test2$query, "α-methyl-Benzenepropanamine")
expect_equal(test2$cas, "22374-89-6")
})
test_that("a record with no CAS number returns expected output", {
test <- nist_ri("(Z,Z)-alpha-Farnesene", from="name", type = "linear", polarity="polar")
expect_equal(test$query, "(Z,Z)-α-Farnesene")
expect_equal(test$cas, NA)
})
test_that("a query with spaces returns the expected output", {
test <- nist_ri(query = "methyl glyoxal", from="name",temp_prog = "ramp")
expect_equal(test$query, "methyl glyoxal")
expect_equal(test$cas, "78-98-8")
expect_true(!is.na(test[1,"RI"]))
})
test_that("nist_ri() can deal appropriately with a mixture of queries", {
test <- nist_ri(query=c(NA, "baloon", "methane", "deuterium", "hexanol"), from = "name",
type=c("kovats","linear"), polarity="polar",
temp_prog = "ramp")
expect_true(all(is.na(test[1,])))
expect_true(is.na(test[[2,"cas"]]))
expect_true(is.na(test[[2,"RI"]]))
expect_equal(test[[3,"query"]], "methane")
expect_equal(test[[3,"cas"]], "74-82-8")
expect_true(is.na(test[[3,"RI"]]))
expect_equal(test[[4,"query"]], "deuterium")
expect_true(all(is.na(test[4,-1])))
expect_equal(test[[5,"query"]], "hexanol")
expect_equal(test[[5,"cas"]], "111-27-3")
expect_equal(test[[5,"RI"]], 1339)
})
test_that("nist_ri() works with multiple temperature program arguments",{
df_ramp <- nist_ri("78-70-6", from = "cas", type = c("kovats"), polarity="polar",
temp_prog = "ramp")
df_iso <- nist_ri("78-70-6", type = c("kovats"), polarity="polar",
temp_prog = "isothermal")
df_both <- nist_ri("78-70-6", from = "cas", type = c("kovats"), polarity="polar",
temp_prog = c("ramp","isothermal"))
all(colnames(df_ramp) %in% colnames(df_both))
all(colnames(df_iso) %in% colnames(df_both))
expect_true(all(df_ramp$RI %in% df_both$RI))
expect_true(all(df_iso$RI %in% df_both$RI))
expect_true(nrow(df_both) == nrow(df_ramp) + nrow(df_iso))
})
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.