tests/testthat/test-convert-dataframe-to-matrix.R

context("test-convert-dataframe-to-matrix: ")

test_that("Check that convert_data_frame_to_matrix returns matrices per expectation", {
  library(Matrix)
  
  ##---------------------  
  ## case 1 - continuous dense
  ## For each expample check class of the object returned, its values and dim names
  
  df_cd1 = data.frame(feature_id = c(1,2,1,2), biosample_id = c(1,1,2,2), value = c(7))
  invisible(capture.output(ret_cd1 <- revealgenomics:::convert_data_frame_to_matrix(df_cd1)))
  expected_ret_cd1 = matrix(data = 7, nrow = 2, ncol = 2, dimnames = list(1:2, 1:2))
  expect_true(is(ret_cd1, 'dgTMatrix'))
  expect_identical(as.matrix(ret_cd1), expected_ret_cd1)
  
  df_cd2 = data.frame(feature_id = c(1, 1), biosample_id = c(3,4), value = c(7, 9))
  invisible(capture.output(ret_cd2 <- revealgenomics:::convert_data_frame_to_matrix(df_cd2)))
  expected_ret_cd2 = matrix(data = c(7,9), nrow = 1, ncol = 2, dimnames = list(1, 3:4))
  expect_true(is(ret_cd2, 'dgeMatrix'))
  expect_identical(as.matrix(ret_cd2), expected_ret_cd2)

  ##---------------------
  ## case 2 - discontinuous dense
  ## For each expample check class of the object returned, its values and dim names

  df_dcd1 = data.frame(feature_id = c(1,2,1,2), biosample_id = c(1,1,3,3), value = c(7))
  invisible(capture.output(ret_dcd1 <- revealgenomics:::convert_data_frame_to_matrix(df_dcd1)))
  expected_ret_dcd1 = matrix(data = 7, nrow = 2, ncol = 2, dimnames = list(1:2, c(1,3)))
  expect_true(is(ret_dcd1, 'dgTMatrix'))
  expect_identical(as.matrix(ret_dcd1), expected_ret_dcd1)

  df_dcd2 = data.frame(feature_id = c(1,4,1,4), biosample_id = c(1,1,3,3), value = c(7, 9))
  invisible(capture.output(ret_dcd2 <- revealgenomics:::convert_data_frame_to_matrix(df_dcd2)))
  expected_ret_dcd2 = matrix(data = c(7,7,9,9), nrow = 2, ncol = 2, byrow = TRUE,
                             dimnames = list(c(1,4), c(1,3)))
  expect_true(is(ret_dcd2, 'dgTMatrix'))
  expect_identical(as.matrix(ret_dcd2), expected_ret_dcd2)

  ##---------------------
  ## case 3 - sparse
  ## For each expample check class of the object returned, its values and dim names

  df_s1 = data.frame(feature_id = c(1, 2), biosample_id = c(3,4), value = c(7, 9))
  invisible(capture.output(ret_s1 <- revealgenomics:::convert_data_frame_to_matrix(df_s1)))
  expected_s1 = matrix(data = c(7,NA,NA,9), nrow = 2, ncol = 2, byrow = TRUE, 
                       dimnames = list(1:2, 3:4))
  expect_true(is(ret_s1, 'matrix'))
  expect_identical(ret_s1, expected_s1)

  df_s2 = data.frame(feature_id = c(1:4), biosample_id = c(1:4), value = c(7))
  invisible(capture.output(ret_s2 <- revealgenomics:::convert_data_frame_to_matrix(df_s2)))
  expected_s2 = matrix(data = c(7,NA,NA,NA, NA,7,NA,NA, NA,NA,7,NA, NA,NA,NA,7), 
                       nrow = 4, ncol = 4, byrow = TRUE, dimnames = list(1:4, 1:4))
  expect_true(is(ret_s2, 'matrix'))
  expect_identical(ret_s2, expected_s2)

  df_s3 = data.frame(feature_id = c(1, 10, 10), biosample_id = c(3,3, 4), value = c(7, 8, 9))
  invisible(capture.output(ret_s3 <- revealgenomics:::convert_data_frame_to_matrix(df_s3)))
  expected_s3 = matrix(data = c(7,NA,8,9), nrow = 2, ncol = 2, byrow = TRUE, 
                       dimnames = list(c(1,10), 3:4))
  expect_true(is(ret_s3, 'matrix'))
  expect_identical(ret_s3, expected_s3)

})
Paradigm4/revealgenomics documentation built on April 7, 2020, 2:01 a.m.