tests/testthat/test_QueryNode.R

# Testing QueryNode
test_that("QueryNode returns correct structure for terminal node", {
  search_operator <- DefaultOperator("4HHB")
  result <- QueryNode(search_operator)
  expect_equal(result$type, "terminal")
  expect_equal(result$service, infer_search_service(search_operator))
  expect_equal(result$parameters, search_operator)
})

test_that("QueryNode returns correct structure for group node", {
  queries <- list(DefaultOperator("4HHB"), ExactMatchOperator("rcsb_entry_info.resolution_combined", "2.0"))
  query_group <- QueryGroup(queries, "AND")
  result <- QueryNode(query_group)
  expect_equal(result$type, "group")
  expect_equal(result$logical_operator, query_group$logical_operator)
  expect_equal(result$nodes, query_group$nodes)
})

test_that("QueryNode derives group logical operator from argument when missing", {
  query_group <- list(
    type = "group",
    nodes = list(QueryNode(DefaultOperator("4HHB")))
  )

  result <- QueryNode(query_group, logical_operator = "OR")

  expect_equal(result$type, "group")
  expect_equal(result$logical_operator, "or")
  expect_equal(result$nodes, query_group$nodes)
})

Try the rPDBapi package in your browser

Any scripts or data that you put into this service are public.

rPDBapi documentation built on March 9, 2026, 5:08 p.m.