Switch to side-by-side view

--- a
+++ b/tests/testthat/test-assay.R
@@ -0,0 +1,58 @@
+# Testing functions of manipulating embeddings ####
+test_that("add assay", {
+  
+  # get data
+  data("xenium_data")
+
+  # assay name and metadata
+  assay <- vrAssayNames(xenium_data)
+  sample_metadata <- SampleMetadata(xenium_data)
+
+  # add cell assay
+  new_assay <- formAssay(data = vrData(xenium_data),
+                         coords = vrCoordinates(xenium_data), 
+                         segments = vrSegments(xenium_data),
+                         type = "cell",
+                         image = vrImages(xenium_data),
+                         main_image = vrMainImage(xenium_data[[assay]]),
+                         name = assay)
+  xenium_data2 <- addAssayVoltRon(xenium_data,
+                                  assay = new_assay,
+                                  assay_name = "Xenium",
+                                  sample = sample_metadata[assay, "Sample"],
+                                  layer = sample_metadata[assay, "Layer"])
+  expect_equal(unique(Metadata(xenium_data2)$assay_id), c("Assay1", "Assay2"))
+  
+  # add cell assay with metadata
+  metadata <- data.frame(points = vrSpatialPoints(xenium_data))
+  xenium_data2 <- addAssayVoltRon(xenium_data,
+                                   metadata = metadata,
+                                   assay = new_assay,
+                                   assay_name = "Xenium",
+                                   sample = sample_metadata[assay, "Sample"],
+                                   layer = sample_metadata[assay, "Layer"])
+  expect_equal(unique(Metadata(xenium_data2)$assay_id), c("Assay1", "Assay2"))
+  expect_true("points" %in% colnames(Metadata(xenium_data2)))
+  
+  # add ROI assay
+  coords <- vrCoordinates(xenium_data)[1:2,,drop = FALSE]
+  new_assay <- formAssay(coords = coords, 
+                         segments = vrSegments(xenium_data)[1:2],
+                         type = "ROI",
+                         image = vrImages(xenium_data, assay = assay),
+                         main_image = vrMainImage(xenium_data[[assay]]),
+                         name = assay)
+  metadata <- data.frame(check.rows = FALSE, row.names = rownames(coords), rep("art", nrow(coords)))
+  colnames(metadata) <- "label"
+  xenium_data2 <- addAssayVoltRon(xenium_data,
+                                  assay = new_assay,
+                                  metadata = metadata,
+                                  assay_name = "random_ROI_assay",
+                                  sample = sample_metadata[assay, "Sample"],
+                                  layer = sample_metadata[assay, "Layer"])
+  expect_true("label" %in% colnames(Metadata(xenium_data2, type = "ROI")))
+  expect_true(nrow(Metadata(xenium_data2, type = "ROI")) == 2)
+
+  # return
+  expect_equal(1,1L)
+})
\ No newline at end of file