data("raman_hdpe")
test_that("polynomial subtr_baseline() works as expected", {
poly <- subtr_baseline(raman_hdpe, degree = 8) |> expect_silent()
cor(poly$spectra$intensity,
subtr_baseline(raman_hdpe, degree = 1)$spectra$intensity) |> round(4) |>
expect_equal(0.9929, ignore_attr = F)
expect_s3_class(poly, "OpenSpecy")
expect_true(check_OpenSpecy(poly))
expect_equal(nrow(poly$spectra), nrow(raman_hdpe$spectra))
expect_equal(poly$wavenumber, raman_hdpe$wavenumber)
expect_equal(range(poly$spectra), c(0, 1))
})
test_that("manual subtr_baseline() works as expected", {
subtr_baseline(raman_hdpe, type = "manual") |> expect_error()
bl <- raman_hdpe
bl$spectra$intensity <- bl$spectra$intensity / 2
man <- subtr_baseline(raman_hdpe, type = "manual", baseline = bl) |>
expect_silent()
expect_true(check_OpenSpecy(man))
cor(raman_hdpe$spectra$intensity, man$spectra$intensity) |>
expect_equal(1, ignore_attr = F)
expect_equal(nrow(man$spectra), nrow(raman_hdpe$spectra))
expect_equal(man$wavenumber, raman_hdpe$wavenumber)
expect_equal(range(man$spectra), c(0, 1))
})
test_that("smodpoly subtr_baseline() works as expected", {
smod <- subtr_baseline(x = raman_hdpe, type = "polynomial",full = F,
iterations = 10, refit_at_end = T,
remove_peaks = T,
peak_width_mult = 3,
degree = 10, degree_part = 2) |>
expect_silent()
# Check output structure and validity
expect_s3_class(smod, "OpenSpecy")
expect_true(check_OpenSpecy(smod))
# Validate dimensions remain consistent
expect_equal(nrow(smod$spectra), nrow(raman_hdpe$spectra))
expect_equal(smod$wavenumber, raman_hdpe$wavenumber)
# Check intensity range is normalized
expect_equal(range(smod$spectra), c(0, 1))
# Correlation between original and corrected spectra should be less than polynomial fitting
poly <- subtr_baseline(raman_hdpe, degree = 8)
cor_poly <- cor(poly$spectra$intensity, smod$spectra$intensity)
expect_true(cor_poly > 0.95)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.