tests/testthat/test_events.R

context("Events related tests")

context("Creating hypnograms")

test_that("Plotting a hypnogram", {
  
  hypnogram <- data.frame(begin = as.POSIXlt(c(1536967800,1536967830,1536967860),origin = "1970-01-01"))
  hypnogram$end <- as.POSIXlt(c(1536967830,1536967860,1536967890),origin = "1970-01-01")
  hypnogram$event = c("N3","N3","REM")
  hypnogram <-plot_hypnogram(hypnogram)
  expect_equal(class(hypnogram)[1], "gg")
  expect_equal(class(hypnogram)[2], "ggplot")
})

test_that("Events file check", {
  
  # begin column
  events <- read_events_noxturnal("data/noxturnal_events_example_unicode.csv")
  events$begin <- NULL
  expect_error(hypnogram(events))
  
  # end column
  events <- read_events_noxturnal("data/noxturnal_events_example_unicode.csv")
  events$end <- NULL
  expect_error(hypnogram(events))
  
  # event column
  events <- read_events_noxturnal("data/noxturnal_events_example_unicode.csv")
  events$event <- NULL
  expect_error(hypnogram(events))
  
  # begin type
  events <- read_events_noxturnal("data/noxturnal_events_example_unicode.csv")
  events$begin <- as.character(events$begin)
  expect_error(hypnogram(events))
  
  # end type
  events <- read_events_noxturnal("data/noxturnal_events_example_unicode.csv")
  events$end <- as.character(events$end)
  expect_error(hypnogram(events))
  
  # event type
  events <- read_events_noxturnal("data/noxturnal_events_example_unicode.csv")
  events$event <- as.factor(events$event)
  expect_error(hypnogram(events))
  
})

test_that("Hypnogram smoothing",{
  
  hypnogram <- data.frame(
    begin = as.POSIXlt(c(1536967800,1536967830,1536967860),
                       origin = "1970-01-01"))
  hypnogram$end <- as.POSIXlt(c(1536967830,1536967860,1536967890),
                              origin = "1970-01-01")
  hypnogram$event = c("REM","N2","REM")
  
  # smooth_liang2012(hypnogram)
  
  hypnogram <- smooth_hypnogram(hypnogram, "N2","REM", 1)
  
  expect_true(all(hypnogram$event == "REM"))
  
  # smooth_liang2012(
  #   read_events_noxturnal("data/noxturnal_events_example_unicode.csv"))
  
})

test_that("Sleep periods",{
  hypnogram <- data.frame(
    begin = as.POSIXlt(c(1536967800,1536967830,1536967860),
                       origin = "1970-01-01"))
  hypnogram$end <- as.POSIXlt(c(1536967830,1536967860,1536967890),
                              origin = "1970-01-01")
  hypnogram$event = c("REM","N2","REM")
  periods <- periods(hypnogram = hypnogram,mode = "continuous")
  expect_true(nrow(periods) == 1)
  periods <- periods(hypnogram = hypnogram,mode = "stages")
  expect_true(nrow(periods) == 3)
  expect_true(ncol(periods) == 4)
})

test_that("Transitions",{
  events <- data.frame(event = c(
    "AWA","N1","N2","N2", "N3","N3",
    "REM","N2","REM","REM", "N2","REM","AWA"))
  
  events$begin <- as.POSIXlt(seq(from = 0, to = 30*(nrow(events)-1), by = 30),origin = "1970-01-01")
  events$end <- as.POSIXlt(seq(from = 30, to = 30*nrow(events), by = 30), origin = "1970-01-01")
  expect_true(ncol(transitions(events, format = "dataframe")) == 5)
  expect_true(length(transitions(events)) == 25)
  
  events <- data.frame(event = c(
    "N1","N2","N2", "N3","N3",
    "REM","N2","REM","REM", "N2","REM"))
  
  events$begin <- as.POSIXlt(seq(from = 0, to = 30*(nrow(events)-1), by = 30),origin = "1970-01-01")
  events$end <- as.POSIXlt(seq(from = 30, to = 30*nrow(events), by = 30), origin = "1970-01-01")
  expect_true(ncol(transitions(events, format = "dataframe")) == 4)
  expect_true(length(transitions(events)) == 16)
  
})
boupetch/rsleep documentation built on March 15, 2024, 5:44 p.m.