# Test read family of functions read_funs <- funs_objs[grepl("read_", names(funs_objs))] write_funs <- funs_objs[grepl("write_", names(funs_objs))] formats <- c(names(read_funs), names(write_funs)) formats <- gsub("read_|write_", "", formats) formats <- formats[duplicated(formats)] formats <- formats[!grepl("^graph$", formats)] for(fm in formats) { test_that(paste("read and write", fm, "are compatible"), { skip_if(grepl("nodelist|pajek", fm), message = "nodelist and pajek read/write not tested yet") skip_if_not_installed("readxl") file <- tempfile() # Create file write_funs[[paste0("write_", fm)]](create_ring(5), filename = file) expect_equal(as_matrix(read_funs[[paste0("read_", fm)]](file)), as_matrix(create_ring(5))) on.exit(unlink(file)) # Unlink file }) } # test_that("read_edgelist works", { # expect_equal(read_edgelist(testthat::test_path("sheets", "testCSVComma.csv"), # sv = "comma"), # data.frame(From = c(1, 2, 2), # To = c(2, 1, 3), # Weight = c(1, 2, 3))) # expect_equal(read_edgelist(testthat::test_path("sheets", "testCSVSemiColon.csv"), # sv = "semi-colon"), # data.frame(From = c(1, 2, 2), # To = c(2, 1, 3), # Weight = c(1, 2, 3))) # expect_error(read_edgelist(testthat::test_path("sheets", "testCSVSemiColon.csv"), # sv = "SomethingWrong")) # testthat::skip_if_not_installed("readxl") # expect_equal(read_edgelist(testthat::test_path("sheets", "test.xlsx")), # dplyr::tibble(From = c(1, 2, 2), # To = c(2, 1, 3), # Weight = c(1, 2, 3))) # }) # # test_that("write_edgelist works", { # file <- tempfile() # Create file # file2 <- tempfile() # Create file # edgelisttest <- as_igraph(dplyr::tibble(from = c(1, 2, 2), # to = c(2, 1, 3), # weight = c(1, 2, 3))) # write_edgelist(edgelisttest, # filename = file) # expect_equal(read.csv(file), # data.frame(from = c(1, 2, 2), # to = c(2, 1, 3), # weight = c(1, 2, 3))) # write_edgelist(filename = file2) # expect_equal(read.csv(file2), data.frame(from = c("A", "B", "C"), # to = c("B", "C", "A"), # weight = c(1.1, 11, 110))) # on.exit(unlink(file)) # Unlink file # on.exit(unlink(file2)) #Unlink file # }) # # test_that("read_nodelist works", { # expect_equal(read_nodelist(testthat::test_path("sheets", "testCSVComma.csv"), # sv = "comma"), # data.frame(From = c(1, 2, 2), # To = c(2, 1, 3), # Weight = c(1, 2, 3))) # expect_equal(read_nodelist(testthat::test_path("sheets", "testCSVSemiColon.csv"), # sv = "semi-colon"), # data.frame(From = c(1, 2, 2), # To = c(2, 1, 3), # Weight = c(1, 2, 3))) # expect_error(read_nodelist(testthat::test_path("sheets", "testCSVSemiColon.csv"), # sv = "SomethingWrong")) # testthat::skip_if_not_installed("readxl") # expect_equal(read_nodelist(testthat::test_path("sheets", "test.xlsx")), # dplyr::tibble(From = c(1, 2, 2), # To = c(2, 1, 3), # Weight = c(1, 2, 3))) # }) # # test_that("write_nodelist works", { # file <- tempfile() # Create file # file2 <- tempfile() # Create file # nodelisttest <- data.frame(data.frame(from = c("A", "B", "C"), # to = c("B", "A", "A"))) # nodelisttest <- igraph::set_vertex_attr(as_igraph(nodelisttest), # name = "type", # value =c(FALSE, FALSE, TRUE) ) # write_nodelist(nodelisttest, # filename = file) # expect_equal(read.csv(file), # data.frame(name = c("A", "B", "C"), # type = c(FALSE, FALSE, TRUE))) # write_nodelist(filename = file2) # expect_equal(read.csv(file2), # data.frame(type = c(FALSE, FALSE, TRUE), # name = c("A", "B", "C"))) # on.exit(unlink(file)) # Unlink file # on.exit(unlink(file2)) # Unlink file # }) # # test_that("read_pajek and write_pajek works", { # testpaj <- read_pajek(testthat::test_path("sheets", "SouthernWomen.paj")) # expect_true(is.tbl_graph(testpaj)) # edgetest <- as_edgelist(testpaj) # expect_equal(head(edgetest$from), # head(as_edgelist(testpaj)$from)) # file <- tempfile() # Create file # write_pajek(as_igraph(testpaj), file) # testpaj2 <- read_pajek(file) # expect_true(is.tbl_graph(testpaj2)) # edgetest2 <- as_edgelist(testpaj2) # # Note, the igraph::write.graph forgets names. # expect_equal(head(edgetest2$from), as.character(rep(1, 6))) # on.exit(unlink(file)) # Unlink file # }) # # test_that("read_ucinet and write_ucinet works", { # testuci <- read_ucinet(testthat::test_path("sheets", "ucinettest.##h")) # expect_true(is.tbl_graph(testuci)) # expect_equal(nrow(as_edgelist(testuci)), 78) # expect_equal(ncol(as_edgelist(testuci)), 2) # expect_equal(igraph::vertex_attr(as_igraph(testuci), "name"), NULL) # expect_error(read_ucinet(testthat::test_path("sheets", "ucinettest"))) # expect_error(read_ucinet(testthat::test_path("sheets", "ucinettest1.##h"))) # file <- tempfile() # Create file # write_ucinet(as_tidygraph(testuci), file) # testuci2 <- read_ucinet(paste0(file, ".##h")) # expect_true(is.tbl_graph(testuci2)) # edgetest2 <- as_edgelist(testuci2) # # Note, the write ucinet function forgets certain attributes # expect_equal(length(edgetest2$from), length(as_edgelist(testuci2)$from)) # on.exit(unlink(file)) # Unlink file # }) # # # test_that("read_graphml and write_graphml works", { # # testgml <- read_graphml(testthat::test_path("sheets", "nassau.graphml")) # # expect_true(is.tbl_graph(testgml)) # # expect_equal(nrow(as_edgelist(testgml)), 15598) # # expect_equal(ncol(as_edgelist(testgml)), 17) # # expect_length(net_node_attributes(testgml), 8) # # expect_length(net_tie_attributes(testgml), 15) # # expect_error(read_graphml(testthat::test_path("sheets", "nassau"))) # # path <- tempfile() # Create file # # write_graphml(testgml, path) # # testgml2 <- suppressWarnings(read_graphml(paste0(path))) # # expect_true(is.tbl_graph(testgml2)) # # edgegml <- as_edgelist(testgml2) # # expect_length(edgegml$from, length(as_edgelist(testgml)$from)) # # on.exit(unlink(path)) # Unlink file # # }) # # test_that("read_ and write_ matrix works", { # Abruzzo <- Campania <- Calabria <- Puglia <- NULL # Abruzzo <- c(1, 0.76, 0.8, 0.90) # Campania <- c(0.76, 1, 0.62, 0.69) # Calabria <- c(0.80, 0.62, 1, 0.85) # Puglia <- c(0.90, 0.69, 0.85, 1) # out <-data.frame(Abruzzo, Campania, Calabria, Puglia) # row.names(out) <- c('Abruzzo','Campania', 'Calabria', 'Puglia') # expect_equal(as_matrix(read_matrix(testthat::test_path("sheets", "test_matrix.csv"))), # as.matrix(out)) # # file <- tempfile() # Create file # # write_matrix(out, filename = file) # # expect_equal(as_matrix(read_matrix(file)), # # as.matrix(out)) # # on.exit(unlink(file)) # Unlink file # })