test_that("layout_mulitlevel works", {
  data("multilvl_ex")
  expect_is(layout_as_multilevel(multilvl_ex,type = "all", alpha = 25, beta = 45),"matrix")
  expect_is(layout_as_multilevel(multilvl_ex,type = "separate",
                            FUN1 = layout_as_backbone,
                            FUN2 = layout_with_stress,
                            alpha = 25, beta = 45),"matrix")
  expect_is(layout_as_multilevel(multilvl_ex,
                                 type = "fix2",
                                 FUN2 = layout_with_stress,
                                 alpha = 25, beta = 45
  ),"matrix")
  expect_is(layout_as_multilevel(multilvl_ex,
                                 type = "fix1",
                                 FUN1 = layout_with_stress,
                                 alpha = 25, beta = 45
  ),"matrix")
  expect_error(layout_as_multilevel(igraph::make_full_graph(10)))

  expect_error(layout_as_multilevel(multilvl_ex,type="fix1"))
  expect_error(layout_as_multilevel(multilvl_ex,type="fix2"))
  expect_error(layout_as_multilevel(multilvl_ex,type="fix3"))

  g <- igraph::remove.vertex.attribute(multilvl_ex,"lvl")
  expect_error(layout_as_multilevel(g,type="fix2"))

  expect_error(layout_as_multilevel(multilvl_ex,type="separate"))
  expect_error(layout_as_multilevel(multilvl_ex,type="separate",
                                    FUN1 = layout_as_backbone,params1 = list(wrong="a"),
                                    FUN2 = layout_with_stress))
  expect_error(layout_as_multilevel(multilvl_ex,type="separate",
                                    FUN1 = layout_as_backbone,
                                    FUN2 = layout_with_stress,params2 = list(wrong="a")))
  expect_no_error(layout_as_multilevel(multilvl_ex,type="separate",
                                    FUN1 = layout_as_backbone,params1 = list(keep=0.3),
                                    FUN2 = layout_with_stress,params2 = list(bbox=15)))
})
