test_that("newer version preferred", {
pkgs <- make_fake_resolution(
`aa` = list(version = "1-0-1", platform = "source", direct = TRUE),
`installed::/tmp/aa` = list(version = "1.2.0", type = "cran")
)
lp <- pkgplan_i_create_lp_problem(pkgs,
config = current_config(),
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(FALSE, TRUE, FALSE))
pkgs <- make_fake_resolution(
`aa` = list(version = "1-0-1", platform = "source", direct = TRUE),
`installed::/tmp/aa` = list(version = "1.0.0", type = "bioc")
)
lp <- pkgplan_i_create_lp_problem(pkgs,
config = current_config(),
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(TRUE, FALSE, FALSE))
})
test_that("if newer fails, older is used", {
pkgs <- make_fake_resolution(
`aa` = list(version = "0.9.9", direct = TRUE),
`cran::aa` = list(version = "1-0-1", status = "FAILED"),
`installed::/tmp/aa` = list(version = "1.0.0", type = "cran")
)
lp <- pkgplan_i_create_lp_problem(pkgs,
config = current_config(),
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(FALSE, FALSE, TRUE, FALSE))
})
test_that("newer version if preferred in the dependencies", {
pkgs <- make_fake_resolution(
`a0` = list(direct = TRUE, deps = list(make_fake_deps(Imports = "aa"))),
`aa` = list(version = "1-0-1", platform = "source"),
`installed::/tmp/aa` = list(version = "1.0.0")
)
lp <- pkgplan_i_create_lp_problem(pkgs,
config = current_config(),
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(TRUE, TRUE, FALSE, FALSE))
})
test_that("binaries are still preferred over source", {
pkgs <- make_fake_resolution(
`aa` = list(version = "1.0.0", direct = TRUE, platform = "macos"),
`cran::aa` = list(version = "1.0.0", platform = "source"),
`installed::/tmp/aa` = list(version = "0.9.9")
)
config <- current_config()$set("platforms", c("macos", "source"))
lp <- pkgplan_i_create_lp_problem(pkgs,
config = config,
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(TRUE, FALSE, FALSE, FALSE))
pkgs <- make_fake_resolution(
`cran::aa` = list(version = "1.0.0", platform = "source"),
`aa` = list(version = "1.0.0", direct = TRUE, platform = "macos"),
`installed::/tmp/aa` = list(version = "0.9.9")
)
lp <- pkgplan_i_create_lp_problem(pkgs,
config = config,
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(FALSE, TRUE, FALSE, FALSE))
})
test_that("installed is still preferred over binaries", {
pkgs <- make_fake_resolution(
`aa` = list(version = "1.0.0", direct = TRUE, platform = "macos"),
`cran::aa` = list(version = "1.0.0", platform = "source"),
`installed::/tmp/aa` = list(
version = "1.0.0",
extra = list(list(repotype = "cran"))
)
)
config <- current_config()$set("platforms", c("macos", "source"))
lp <- pkgplan_i_create_lp_problem(pkgs,
config = config,
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(FALSE, FALSE, TRUE, FALSE))
pkgs <- make_fake_resolution(
`cran::aa` = list(version = "1.0.0", platform = "source"),
`aa` = list(version = "1.0.0", direct = TRUE, platform = "macos"),
`installed::/tmp/aa` = list(
version = "1.0.0",
extra = list(list(repotype = "cran"))
)
)
lp <- pkgplan_i_create_lp_problem(pkgs, config = config,
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(FALSE, FALSE, TRUE, FALSE))
pkgs <- make_fake_resolution(
`installed::/tmp/aa` = list(
version = "1.0.0",
extra = list(list(repotype = "cran"))
),
`cran::aa` = list(version = "1.0.0", platform = "source"),
`aa` = list(version = "1.0.0", direct = TRUE, platform = "macos")
)
lp <- pkgplan_i_create_lp_problem(pkgs,
config = config,
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(TRUE, FALSE, FALSE, FALSE))
pkgs <- make_fake_resolution(
`cran::aa` = list(version = "1.0.0", platform = "source"),
`installed::/tmp/aa` = list(
version = "1.0.0",
extra = list(list(repotype = "cran"))
),
`aa` = list(version = "1.0.0", direct = TRUE, platform = "macos")
)
lp <- pkgplan_i_create_lp_problem(pkgs,
config = config,
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(FALSE, TRUE, FALSE, FALSE))
})
test_that("unqualified is cran/bioc", {
## If installed is GH, that's not good
pkgs <- make_fake_resolution(
`aa` = list(version = "1.0.0", direct = TRUE, platform = "macos"),
`cran::aa` = list(version = "1.0.0", platform = "source"),
`installed::/tmp/aa` = list(
version = "1.0.0",
extra = list(list(repotype = "github"))
)
)
config <- current_config()$set("platforms", c("macos", "source"))
lp <- pkgplan_i_create_lp_problem(pkgs,
config = config,
policy = "upgrade")
sol <- pkgplan_i_solve_lp_problem(lp)
expect_true(sol$objval < 1000)
expect_equal(as.logical(sol$solution), c(TRUE, FALSE, FALSE, FALSE))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.