tests/testthat/test-all.st.cuts.R

test_that("all.st.cuts works", {
  unvs <- function(x) lapply(x, as.vector)

  g <- graph_from_literal(a -+ b -+ c -+ d -+ e)
  cc <- st_cuts(g, source = "a", target = "e")
  expect_that(unvs(cc$cuts), equals(list(1, 2, 3, 4)))
  expect_that(unvs(cc$partition1s), equals(list(1, 1:2, 1:3, 1:4)))

  g2 <- graph_from_literal(s -+ a:b -+ t, a -+ 1:2:3 -+ b)
  cc <- st_cuts(g2, source = "s", target = "t")
  expect_that(unvs(cc$cuts), equals(list(
    c(1, 2), c(1, 7), c(2, 3, 4, 5, 6),
    c(2, 3, 4, 5, 10), c(2, 3, 4, 6, 9),
    c(2, 3, 4, 9, 10), c(2, 3, 5, 6, 8),
    c(2, 3, 5, 8, 10), c(2, 3, 6, 8, 9),
    c(2, 3, 8, 9, 10), c(3, 7)
  )))
  expect_that(
    unvs(cc$partition1s),
    equals(list(
      1, c(1, 3), c(1, 2), c(1, 2, 7), c(1, 2, 6),
      c(1, 2, 6, 7), c(1, 2, 5), c(1, 2, 5, 7), c(1, 2, 5, 6),
      c(1, 2, 5, 6, 7), c(1, 2, 5, 6, 7, 3)
    ))
  )

  g3 <- graph_from_literal(s -+ a:b -+ t, a -+ 1:2:3:4:5 -+ b)
  cc <- st_min_cuts(g3, source = "s", target = "t")
  expect_that(cc$value, equals(2))
  expect_that(unvs(cc$cuts), equals(list(c(1, 2), c(2, 3), c(1, 9), c(3, 9))))
  expect_that(unvs(cc$partition1s), equals(list(1, c(1, 2, 9, 8, 7, 6, 5), c(1, 3), c(1, 3, 2, 9, 8, 7, 6, 5))))
})

Try the igraph package in your browser

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

igraph documentation built on Aug. 10, 2023, 9:08 a.m.