test_that("digi_norm errors if conditions is missing",{ data(multi_cond_data) expect_error( digi_norm(data=multi_cond_data, replicates="Sample_id"), "`conditions` must be explicitly specified" ) }) test_that("digi_norm errors if replicates is missing",{ data(multi_cond_data) expect_error( digi_norm(data=multi_cond_data, conditions="Brain_region"), "`replicates` must be explicitly specified" ) }) test_that("digi_norm returns a digi_norm object",{ data(multi_cond_data) res<-digi_norm( data=multi_cond_data, conditions="Brain_region", replicates="Sample_id", weight_resolution=10 ) expect_s3_class(res, "digi_norm") expect_true(is.data.frame(res)) }) test_that("digi_norm preserves non-expression metadata",{ data(multi_cond_data) res<-digi_norm( data=multi_cond_data, conditions="Brain_region", replicates="Sample_id", weight_resolution=10 ) expect_identical(res$Sample_id, multi_cond_data$Sample_id) expect_identical(res$Brain_region, multi_cond_data$Brain_region) }) test_that("digi_norm excludes targets specified by weight_zero", { data(multi_cond_data) res<-digi_norm( data=multi_cond_data, conditions="Brain_region", replicates="Sample_id", weight_zero="Mt3", weight_resolution=10, show_warnings=FALSE ) w<-attr(res, "weights") expect_true(all(w["Mt3", ]==0)) }) test_that("digi_norm works with conditions=NULL", { data(single_cond_data) expect_warning( res<-digi_norm( data=single_cond_data, conditions=NULL, replicates="Sample_id", weight_resolution = 10 ) ) expect_s3_class(res, "digi_norm") expect_true("cond" %in% names(attributes(res))) expect_equal(length(levels(attr(res, "cond"))), 1) })