tests/testthat/test-representatives.R

# test_that("analyze_representatives can detect incorrect parameters correctly",{
#   
#   skip_if_not_installed("TDA")
#   
#   D = data.frame(dimension = c(0),birth = c(0),death = c(1))
#   expect_error(analyze_representatives(diagrams = list(),dim = 1,num_points = 10),"2")
#   expect_error(analyze_representatives(diagrams = 5,dim = 1,num_points = 10),"list")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = -1,num_points = 10),"at least one")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 3),"4")
#   
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,return_contributions = "F"),"logical")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,return_contributions = c(F,T)),"single")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,return_contributions = NULL),"NULL")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,return_contributions = NA),"NA")
#   
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,plot_heatmap = "F"),"logical")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,plot_heatmap = c(F,T)),"single")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,plot_heatmap = NULL),"NULL")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,plot_heatmap = NA),"NA")
#   
#   expect_error(analyze_representatives(diagrams = list(D,D,2),dim = 1,num_points = 4),"diagram")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4),"Representative")
#   expect_error(analyze_representatives(diagrams = list(list(D,representatives = 2),D,D),dim = 1,num_points = 4),"list")
#   expect_error(analyze_representatives(diagrams = list(list(D,representatives = list(matrix(data = c(1.1,2),nrow = 1))),D,D),dim = 1,num_points = 4),"integer")
#   expect_error(analyze_representatives(diagrams = list(list(D,representatives = list(matrix(data = c(1,5),nrow = 1))),D,D),dim = 1,num_points = 4),"num_points")
#   expect_error(analyze_representatives(diagrams = list(list(D,representatives = list(matrix(data = c(1,4),nrow = 1))),D,D),dim = 1,num_points = 4),"diagram")
#   
#   circs_ripsDiag <- lapply(X = 1:10,FUN = function(X){
#     
#     return(TDA::ripsDiag(X = as.matrix(dist(TDA::circleUnif(n = 25))),maxdimension = 1,maxscale = 2,library = "dionysus",location = T,dist = "arbitrary"))
#     
#   })
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,boxed_reps = NA),"boxed_reps")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,boxed_reps = data.frame()),"two")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,boxed_reps = data.frame(diagrams = c(1),reps = c(1))),"rep")
#   
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,lwd = "2",boxed_reps = data.frame(diagram = c(1),rep = c(1))),"numeric")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,lwd = c(1,2),boxed_reps = data.frame(diagram = c(1),rep = c(1))),"single")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,lwd = 0,boxed_reps = data.frame(diagram = c(1),rep = c(1))),"positive")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,lwd = NA,boxed_reps = data.frame(diagram = c(1),rep = c(1))),"NA")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,lwd = Inf,boxed_reps = data.frame(diagram = c(1),rep = c(1))),"finite")
#   
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,title = NaN),"NaN")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,title = 1),"character")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,title = c("1","2")),"single")
#   
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,return_clust = "F"),"logical")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,return_clust = c(F,T)),"single")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,return_clust = NULL),"NULL")
#   expect_error(analyze_representatives(diagrams = list(D,D,D),dim = 1,num_points = 4,return_clust = NA),"NA")
#   
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,d = matrix(data = 0,nrow = 2,ncol = 2)),"dist")
#   expect_error(analyze_representatives(diagrams = circs_ripsDiag,dim = 1,num_points = 25,d = stats::dist(matrix(data = 0,nrow = 2,ncol = 2))),"rows")
# 
# })

# test_that("analyze_representatives is computing properly",{
#   
#   skip_on_cran()
#   skip_if_not_installed("TDA")
#   skip_if(T)
#   
#   ripser <- import_ripser()
#   
#   circs_ripsDiag <- lapply(X = 1:10,FUN = function(X){
#     
#     return(TDA::ripsDiag(X = as.matrix(dist(TDA::circleUnif(n = 25))),maxdimension = 1,maxscale = 2,library = "dionysus",location = T,dist = "arbitrary"))
#     
#   })
#   circs_PyH <- lapply(X = 1:10,FUN = function(X){
#     
#     return(PyH(X = as.matrix(dist(TDA::circleUnif(n = 25))),maxdim = 1,thresh = 2,ripser = ripser,calculate_representatives = T,distance_mat = T))
#     
#   })
#   circs_ripsDiag_boot <- lapply(X = 1:10,FUN = function(X){
#     
#     return(bootstrap_persistence_thresholds(X = as.matrix(dist(TDA::circleUnif(n = 25))),maxdim = 1,thresh = 2,distance_mat = T,calculate_representatives = T,FUN_diag = "ripsDiag",return_subsetted = T))
#     
#   })
#   circs_PyH_boot <- lapply(X = 1:10,FUN = function(X){
#     
#     return(bootstrap_persistence_thresholds(X = as.matrix(dist(TDA::circleUnif(n = 25))),maxdim = 1,thresh = 2,distance_mat = T,calculate_representatives = T,FUN_diag = "PyH",ripser = ripser,return_subsetted = T))
#     
#   })
#   
#   tryCatch(expr = {check1 <- analyze_representatives(circs_ripsDiag,dim = 1,num_points = 25,plot_heatmap = F)},
#            error = function(err){
#              a <- 1
#            },
#            finally = {
#              if(exists("check1")){expect_identical(dim(check1)[[2]],25L)}
#                })
#   
#   tryCatch(expr = {check2 <- analyze_representatives(circs_PyH,dim = 1,num_points = 25,plot_heatmap = F)},
#            error = function(err){
#              a <- 1
#            },
#            finally = {
#              if(exists("check2")){expect_identical(dim(check2)[[2]],25L)}
#            })
#   
#   tryCatch(expr = {check3 <- analyze_representatives(circs_ripsDiag_boot,dim = 1,num_points = 25,plot_heatmap = F)},
#            error = function(err){
#              a <- 1
#            },
#            finally = {
#              if(exists("check3")){expect_identical(dim(check3)[[2]],25L)}
#            })
#   
#   tryCatch(expr = {check4 <- analyze_representatives(circs_PyH_boot,dim = 1,num_points = 25,plot_heatmap = F)},
#            error = function(err){
#              a <- 1
#            },
#            finally = {
#              if(exists("check4")){expect_identical(dim(check4)[[2]],25L)}
#            })
#   
#   tryCatch(expr = {check5 <- analyze_representatives(circs_PyH_boot,dim = 1,num_points = 25,plot_heatmap = F,return_contributions = T)},
#            error = function(err){
#              a <- 1
#            },
#            finally = {
#              if(exists("check5")){expect_identical(length(check5$contributions),25L)}
#            })
#   
#   expect_error(analyze_representatives(circs_PyH_boot,dim = 2,num_points = 25,plot_heatmap = F,return_contributions = T),"dimension")
#   
#   circs <- lapply(X = 1:10,FUN = function(X){
#     
#     return(TDA::circleUnif(n = 25,r = 1))
#     
#   })
#   circs_PH <- lapply(X = circs,FUN = function(X){
#     
#     TDA::ripsDiag(X = as.matrix(dist(X)),maxdimension = 1,maxscale = 2,library = "dionysus",location = T,dist = "arbitrary")
#     
#   })
#   d <- matrix(data = 0,nrow = length(circs),ncol = length(circs))
#   r <- abs(stats::rnorm(45))
#   d[which(upper.tri(d),arr.ind = T)] <- r
#   d[which(upper.tri(d),arr.ind = T)[,c("col","row")]] <- r
#   d <- stats::as.dist(d)
#   check6 <- analyze_representatives(circs_PH,dim = 1,num_points = 25,plot_heatmap = T,d = d)
#   expect_identical(ncol(check6),25L)
# 
# })
shaelebrown/TDAML documentation built on Nov. 1, 2024, 8:59 a.m.