tests/testthat/test_findExperiments.R

context("findExperiments")

test_that("findExperiments", {
  r = makeTestRegistry()
  p1 = addProblem(r, "one", 1)
  p2 = addProblem(r, "two", 2)
  a1 = addAlgorithm(r, "A", fun=function(static, dynamic) 1)
  a2 = addAlgorithm(r, "B", fun=function(static, dynamic) 1)
  addExperiments(r, list(makeDesign(p1), makeDesign(p2)), list(makeDesign(a1), makeDesign(a2)), repls=2)

  i = findExperiments(r)
  expect_equal(i, getJobIds(r)[1:8])
  i = findExperiments(r, 2:3)
  expect_equal(i, getJobIds(r)[2:3])
  i = findExperiments(r, prob.pattern="on")
  expect_equal(i, getJobIds(r)[1:4])
  i = findExperiments(r, algo.pattern="A")
  expect_equal(i, getJobIds(r)[c(1,2,5,6)])
  i = findExperiments(r, algo.pattern="foo")
  expect_equal(i, integer(0))
  i = findExperiments(r, repls=1)
  expect_equal(i, getJobIds(r)[seq(1,8,2)])
  i = findExperiments(r, ids = 1:4, repls=1)
  expect_equal(i, getJobIds(r)[c(1, 3)])
  i = findExperiments(r, prob.pattern="o", match.substring=FALSE)
  expect_equal(i, integer(0))
  i = findExperiments(r, prob.pattern="o", match.substring=TRUE)
  expect_equal(i, getJobIds(r)[1:8])
  i = findExperiments(r, prob.pattern="wo", match.substring=TRUE)
  expect_equal(i, getJobIds(r)[5:8])

  r = makeTestRegistry()
  p1 = addProblem(r, "one", 1)
  a3 = addAlgorithm(r, "A", fun=function(static, dynamic) 1)
  pd1 = makeDesign(p1, exhaustive=list(foo=1:3))
  addExperiments(r, pd1, makeDesign(a3))
  i = findExperiments(r, prob.pars=foo < 3)
  expect_equal(i, getJobIds(r)[1:2])
  a4 = addAlgorithm(r, "B", function(static, dynamic, bar) 1)
  ad4 = makeDesign(a4, exhaustive =list(bar=c("x", "y")))
  #o1 A, o1 Bx, o1 By, o2 A, o2 Bx, o2 By, o3 A, o3 Bx, o3 By
  addExperiments(r, pd1, ad4)
  i = findExperiments(r, algo.pattern="B", algo.pars=bar=="x")
  expect_equal(i, getJobIds(r)[c(4,6,8)])
  i = findExperiments(r, prob.pars=foo>2, algo.pattern="B", algo.pars=bar=="x")
  expect_equal(i, getJobIds(r)[8])
  i = findExperiments(r, prob.pars=foo>100)
  expect_equal(i, integer(0))
})

test_that("regexp works", {
  r = makeTestRegistry()
  p1 = addProblem(r, "one", 1)
  p2 = addProblem(r, "two", 1)
  a1 = addAlgorithm(r, "aab", fun=function(static, dynamic) 1)
  a2 = addAlgorithm(r, "aba", fun=function(static, dynamic) 1)
  a3 = addAlgorithm(r, "baa", fun=function(static, dynamic) 1)
  addExperiments(r, lapply(c(p1, p2), makeDesign), lapply(c(a1, a2, a3), makeDesign))

  ids = findExperiments(r, prob.pattern = "^o", regexp = TRUE)
  expect_equal(ids, 1:3)
  ids = findExperiments(r, prob.pattern = "o$", regexp = TRUE)
  expect_equal(ids, 4:6)
  ids = findExperiments(r, prob.pattern = "o$", algo.pattern = "aa", regexp = TRUE)
  expect_equal(ids, c(4, 6))
  ids = findExperiments(r, prob.pattern = "o$", algo.pattern = "ab", regexp = TRUE)
  expect_equal(ids, c(4, 5))
  ids = findExperiments(r, prob.pattern = "noooo", regexp = TRUE)
  expect_equal(ids, integer(0))

  ids = findExperiments(r, ids = 1:2, prob.pattern = "^o", regexp = TRUE)
  expect_equal(ids, c(1:2))
})

Try the BatchExperiments package in your browser

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

BatchExperiments documentation built on March 21, 2022, 5:06 p.m.