test_that("earsC returns a sts object", {
  #Sim data and convert to sts object
  disProgObj <- sim.pointSource(p = 0.99, r = 0.5, length = 208, A = 1,
                                alpha = 1, beta = 0, phi = 0,
                                frequency = 1, state = NULL, K = 1.7)
  stsObj = disProg2sts( disProgObj)

  res1 <- earsC(stsObj, control = list(range = 20:208, method = "C1"))
  res2 <- earsC(stsObj, control = list(range = 20:208, method = "C2",
                                       alpha = 0.05))

  res3 <- earsC(stsObj, control = list(range = 20:208, method = "C3", sigma = 0.5))

  expect_inherits(res1, "sts")
  expect_inherits(res2, "sts")
  expect_inherits(res3, "sts")

  data("salmNewport")
  in2011 <- which(isoWeekYear(epoch(salmNewport))$ISOYear == 2011)
  salmNewportGermany <- aggregate(salmNewport, by = "unit")
  control <- list(range = in2011, method = "C1", alpha = 0.05)
  surv <- earsC(salmNewportGermany, control = control)

  expect_inherits(surv, "sts")
  expect_true(max(surv@upperbound[1:4] -
                  c(3.278854, 3.278854, 3.436517, 3.855617)) < 0.000001)
})

test_that("earsC returns error messages",{
  data("salmNewport")
  salmNewportGermany <- aggregate(salmNewport, by = "unit")
  control <- list(range = length(salmNewportGermany), method = "C1", alpha = 0.05,
                  baseline = 2)
  expect_error(earsC(salmNewportGermany, control = control),
               "Minimum baseline to use is 3.")

  control <- list(range = length(salmNewportGermany), method = "C1", alpha = 0.05,
                  minSigma = - 2)
  expect_error(earsC(salmNewportGermany, control = control),
               "The minimum sigma parameter")

  in2011 <- which(isoWeekYear(epoch(salmNewport))$ISOYear == 2011)
  control <- list(range = in2011, method = "C1", alpha = 0.05,
                  baseline = 1500)
  expect_error(earsC(salmNewportGermany, control = control),
               "The vector of observed is too short!")

})

test_that("The range is well defined",{
  data("salmNewport")
  salmNewportGermany <- aggregate(salmNewport, by = "unit")
  control <- list(range = length(salmNewportGermany), method = "C1", alpha = 0.05,
                  baseline = 2)
  surv <- earsC(salmNewportGermany,
                control = list(method = "C1",
                               baseline = 10))
  expect_equal(length(surv@upperbound), length(salmNewportGermany@observed) - 10)
})
