tests/testthat/test-rewire.R

test_that("rewire", {
  set.seed(123)
  my_expect_true <- function(nstep, control, directed) {
    set.seed(123)
    edgelist <- rpanet(
      nstep = nstep,
      control = control,
      initial.network = list(
        edgelist = matrix(1:2, nrow = 1),
        directed = directed)
    )$edgelist
    tmp <- which(edgelist[, 1] > edgelist[, 2])
    edgelist[tmp, ] <- edgelist[tmp, c(2, 1)]
    tmp_order <- order(edgelist[, 1], edgelist[, 2])
    edgelist <- edgelist[tmp_order, ]
    adj <- edgelist_to_adj(edgelist = edgelist, directed = directed)
    netwk1 <- create_wdnet(
      edgelist = edgelist,
      directed = directed)
    netwk2 <- create_wdnet(
      adj = adj,
      weighted = FALSE,
      directed = directed
    )
    expect_equal(edgelist, netwk1$edgelist)
    expect_equal(netwk1$edgelist, netwk2$edgelist)
    if (directed) {
      target.assortcoef <- list("outout" = -0.2, "outin" = 0.2)
      eta <- get_eta_directed(
        edgelist = edgelist,
        target.assortcoef = target.assortcoef
      )$eta
    } else {
      target.assortcoef <- 0.2
      eta <- get_eta_undirected(
        edgelist = edgelist,
        target.assortcoef = target.assortcoef
      )$eta
    }

    set.seed(123)
    ret1 <- dprewire(
      edgelist = edgelist, directed = directed,
      control = list(iteration = 200), eta = eta
    )
    set.seed(123)
    ret2 <- dprewire(
      adj = adj, directed = directed,
      control = list(iteration = 200), eta = eta
    )
    set.seed(123)
    ret3 <- dprewire(
      netwk1,
      control = list(iteration = 200), eta = eta
    )
    set.seed(123)
    ret4 <- dprewire(
      netwk2,
      control = list(iteration = 200), eta = eta
    )
    expect_equal(ret1, ret2)
    expect_equal(ret1, ret3)
    expect_equal(ret1, ret4)
  }
  nstep <- 1e3
  control <- rpa_control_scenario(
    alpha = 0.3,
    beta = 0.4,
    gamma = 0.3
  )
  my_expect_true(
    nstep = nstep,
    control = control,
    directed = TRUE
  )
  my_expect_true(
    nstep = nstep,
    control = control,
    directed = FALSE
  )
})

Try the wdnet package in your browser

Any scripts or data that you put into this service are public.

wdnet documentation built on May 29, 2024, 9:32 a.m.