tests/testthat/test-mzQC.R

test_that("isValidMzQC = function(x, parent_context = NULL)", {
  suppressWarnings(## the expression below yields more than one warning, but expect_warning only catches a single one
   expect_warning(out <- isValidMzQC(MzQCcvParameter$new("MS:4000059")))
  )
  expect_false(out)

  expect_true(isValidMzQC(MzQCcvParameter$new("MS:4000059", "Number of MS1 spectra")))

  suppressWarnings(## the expression below yields more than one warning, but expect_warning only catches a single one
    expect_warning(out <- isValidMzQC(list(MzQCcvParameter$new("MS:4000059"))))
  )
  expect_false(out)

  expect_true(isValidMzQC(list(MzQCcvParameter$new("MS:4000059", "Number of MS1 spectra"))))

  # Test with multiple objects (now needs to be done separately)
  valid_param <- MzQCcvParameter$new("MS:4000059", "Number of MS1 spectra")
  invalid_param <- MzQCcvParameter$new()

  # Check each object individually
  expect_true(isValidMzQC(valid_param))
  suppressWarnings(
    expect_warning(out <- isValidMzQC(invalid_param))
  )
  expect_false(out)
})


test_that("fromDatatoMzQC = function(mzqc_class, data)", {
  data = rmzqc::MzQCcvParameter$new("acc", "myName", "value")
  data_recovered = rmzqc::fromDatatoMzQC(rmzqc::MzQCcvParameter, list(jsonlite::fromJSON(jsonlite::toJSON(data))))
  expect_equal(data_recovered[[1]]$accession, data$accession)
  expect_equal(data_recovered[[1]]$value, data$value)
  expect_equal(data_recovered[[1]]$description, data$description)
})


test_that("fromDatatoMzQCobj = function(mzqc_class, data)", {
  data = rmzqc::MzQCcvParameter$new("acc", "myName", "value")
  data_recovered = rmzqc::fromDatatoMzQCobj(rmzqc::MzQCcvParameter, jsonlite::fromJSON(jsonlite::toJSON(data)))
  expect_equal(data_recovered$accession, data$accession)
  expect_equal(data_recovered$value, data$value)
  expect_equal(data_recovered$description, data$description)
})


test_that("MzQCbaseQuality::getMetric = function(.self, accession = NULL, name = NULL)", {
  data = readMZQC(system.file("./testdata/test.mzQC", package = "rmzqc", mustWork = TRUE))

  extracted_metrics = data$runQualities[[1]]$getMetric(accession = "MS:4000059")
  expect_equal(length(extracted_metrics), 1)
  expect_equal(extracted_metrics[[1]]$accession, "MS:4000059")
  expect_equal(extracted_metrics[[1]]$name, "number of MS1 spectra")

  extracted_metrics = data$runQualities[[1]]$getMetric(name = "number of MS1 spectra")
  expect_equal(length(extracted_metrics), 1)
  expect_equal(extracted_metrics[[1]]$accession, "MS:4000059")
  expect_equal(extracted_metrics[[1]]$name, "number of MS1 spectra")
})

Try the rmzqc package in your browser

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

rmzqc documentation built on June 8, 2025, 1:59 p.m.