@@ -247,6 +247,91 @@ test_that("get_count_datasets works", {
247247 expect_equal(cds $ mat2 , seq(10 , 18 ))
248248 expect_equal(cds $ mat3 , seq(19 , 27 ))
249249
250+ # SE does not have dimnames, one assay has duplicated colnames, one has no colnames
251+ se1 <- se
252+ rownames(se1 ) <- colnames(se1 ) <- NULL
253+ colnames(assay(se1 , " mat1" , withDimnames = FALSE ))[2 ] <-
254+ colnames(assay(se1 , " mat1" , withDimnames = FALSE ))[1 ]
255+ colnames(assay(se1 , " mat2" , withDimnames = FALSE )) <- NULL
256+ expect_equal(colnames(assay(se1 , " mat1" , withDimnames = FALSE )), paste0(" S" , c(1 , 1 , 3 )))
257+ expect_equal(rownames(assay(se1 , " mat1" , withDimnames = FALSE )), paste0(" G" , seq_len(3 )))
258+ expect_null(colnames(assay(se1 , " mat2" , withDimnames = FALSE )))
259+ expect_equal(colnames(assay(se1 , " mat3" , withDimnames = FALSE )), paste0(" S" , seq_len(3 )))
260+ expect_null(colnames(se1 ))
261+ expect_null(rownames(se1 ))
262+ expect_error(cds <- get_count_datasets(se1 ), " some column names are duplicated" )
263+
264+ # SE does not have dimnames, one assay has duplicated rownames, one has no rownames
265+ se1 <- se
266+ rownames(se1 ) <- colnames(se1 ) <- NULL
267+ rownames(assay(se1 , " mat1" , withDimnames = FALSE ))[2 : 3 ] <-
268+ rownames(assay(se1 , " mat1" , withDimnames = FALSE ))[1 ]
269+ rownames(assay(se1 , " mat2" , withDimnames = FALSE )) <- NULL
270+ expect_equal(rownames(assay(se1 , " mat1" , withDimnames = FALSE )), paste0(" G" , c(1 , 1 , 1 )))
271+ expect_equal(colnames(assay(se1 , " mat1" , withDimnames = FALSE )), paste0(" S" , seq_len(3 )))
272+ expect_null(rownames(assay(se1 , " mat2" , withDimnames = FALSE )))
273+ expect_equal(rownames(assay(se1 , " mat3" , withDimnames = FALSE )), paste0(" G" , seq_len(3 )))
274+ expect_null(colnames(se1 ))
275+ expect_null(rownames(se1 ))
276+ expect_error(cds <- get_count_datasets(se1 ), " some row names are duplicated" )
277+
278+ # SE has duplicated colnames
279+ se1 <- se
280+ colnames(se1 ) <- paste0(" S" , c(1 , 1 , 1 ))
281+ expect_error(cds <- get_count_datasets(se1 ), " some column names are duplicated" )
282+ expect_true(check_if_any_dimnames_duplicated(se1 , dim = " cols" ))
283+ expect_false(check_if_any_dimnames_duplicated(se1 , dim = " rows" ))
284+
285+ # SE has duplicated rownames
286+ se1 <- se
287+ rownames(se1 ) <- paste0(" G" , c(1 , 2 , 1 ))
288+ expect_error(cds <- get_count_datasets(se1 ), " some row names are duplicated" )
289+ expect_false(check_if_any_dimnames_duplicated(se1 , dim = " cols" ))
290+ expect_true(check_if_any_dimnames_duplicated(se1 , dim = " rows" ))
291+
292+ # All assays + SE have duplicated colnames
293+ se1 <- se
294+ colnames(se1 )[2 ] <-
295+ colnames(assay(se1 , " mat1" , withDimnames = FALSE ))[2 ] <-
296+ colnames(assay(se1 , " mat2" , withDimnames = FALSE ))[2 ] <-
297+ colnames(assay(se1 , " mat3" , withDimnames = FALSE ))[2 ] <- " S1"
298+ expect_true(check_if_any_dimnames_duplicated(se1 , dim = " cols" ))
299+ expect_false(check_if_any_dimnames_duplicated(se1 , dim = " rows" ))
300+ expect_false(check_if_assays_are_NOT_overlapped(se1 , dim = " cols" ))
301+ expect_false(check_if_assays_are_NOT_overlapped(se1 , dim = " rows" ))
302+
303+ # Two assays + SE have duplicated colnames
304+ se1 <- se
305+ colnames(se1 )[2 ] <-
306+ colnames(assay(se1 , " mat1" , withDimnames = FALSE ))[2 ] <-
307+ colnames(assay(se1 , " mat3" , withDimnames = FALSE ))[2 ] <- " S1"
308+ expect_true(check_if_any_dimnames_duplicated(se1 , dim = " cols" ))
309+ expect_false(check_if_any_dimnames_duplicated(se1 , dim = " rows" ))
310+ expect_true(check_if_assays_are_NOT_overlapped(se1 , dim = " cols" ))
311+ expect_false(check_if_assays_are_NOT_overlapped(se1 , dim = " rows" ))
312+
313+ # Assays have duplicated colnames in different ways
314+ se1 <- se
315+ assay(se1 , " mat2" ) <- NULL
316+ colnames(assay(se1 , " mat1" , withDimnames = FALSE )) <- c(" S1" , " S1" , " S2" )
317+ colnames(assay(se1 , " mat3" , withDimnames = FALSE )) <- c(" S1" , " S2" , " S2" )
318+ expect_true(check_if_any_dimnames_duplicated(se1 , dim = " cols" ))
319+ expect_false(check_if_any_dimnames_duplicated(se1 , dim = " rows" ))
320+ expect_true(check_if_assays_are_NOT_overlapped(se1 , dim = " cols" ))
321+ expect_false(check_if_assays_are_NOT_overlapped(se1 , dim = " rows" ))
322+
323+ # All dimnames are NULL - not duplicated
324+ se1 <- se
325+ rownames(se1 ) <- colnames(se1 ) <- NULL
326+ rownames(assay(se1 , " mat1" , withDimnames = FALSE )) <-
327+ colnames(assay(se1 , " mat1" , withDimnames = FALSE )) <-
328+ rownames(assay(se1 , " mat2" , withDimnames = FALSE )) <-
329+ colnames(assay(se1 , " mat2" , withDimnames = FALSE )) <-
330+ rownames(assay(se1 , " mat3" , withDimnames = FALSE )) <-
331+ colnames(assay(se1 , " mat3" , withDimnames = FALSE )) <- NULL
332+ expect_false(check_if_any_dimnames_duplicated(se1 , dim = " cols" ))
333+ expect_false(check_if_any_dimnames_duplicated(se1 , dim = " rows" ))
334+
250335 # Unnamed assay(s)
251336 # se1 <- SummarizedExperiment::SummarizedExperiment(
252337 # assays = list(
0 commit comments