summaryrefslogtreecommitdiff
path: root/tests/testthat/test_chent.R
blob: 4546423600a76a055e2384ecf1e01c771a4adccc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
context("Generation of chent objects")

# Check if we can use RDKit
skip_if_no_rdkit <- function() {
  if (!chents:::rdkit_available) skip("RDKit is not available via reticulate")
}

oct <- chent$new("1-octanol", smiles = "CCCCCCCCO", rdkit = FALSE, pubchem = FALSE, chyaml = FALSE)

test_that("We can initialise an object only with identifier and SMILES code", {
  expect_equal(oct$identifier, c(X1.octanol = "1-octanol")) # The name of the identifier is generated using make.names()
  expect_equal(oct$inchikey, structure(NA, source = "user"))
  expect_equal(oct$smiles, c(user = "CCCCCCCCO"))
})

test_that("We can generate a chent object from SMILES using RDKit", {
  skip_if_no_rdkit()
  oct$get_rdkit()
  expect_equivalent(round(oct$mw, 2), 130.23)
})

test_that("We can add information retrieved from PubChem via webchem", {
  expect_warning(oct$try_pubchem(), "Overwriting uninitialized InChIKey")
  expect_equivalent(round(oct$mw, 2), 130.23)
  ik = "KBPLFHHGFOOTCA-UHFFFAOYSA-N"
  attr(ik, "source") <- "pubchem"
  expect_equal(oct$inchikey, ik)
  expect_equal(oct$smiles[["PubChem"]], "CCCCCCCCO")
})

Contact - Imprint