test_that("cluster_louvain works", {
  withr::local_seed(20231029)

  g <- make_graph("Zachary")
  mc <- cluster_louvain(g)

  expect_true(all(as.vector(membership(mc)) %in% 1:4))
  expect_equal(modularity(g, mc$membership), max(mc$modularity))
  # 3   4
  # 2 998
  expect_true(length(mc) %in% 3:4)
  expect_true(all(as.vector(membership(mc)) %in% seq_len(length(mc))))
  expect_s3_class(sizes(mc), "table")
  expect_equal(sum(sizes(mc)), vcount(g))
  expect_identical(sizes(mc), table(membership(mc), dnn = "Community sizes"))
})
