tests/testthat/test_precedence.R

#### eventlog ####

test_that("test precedence on eventlog", {

  load("./testdata/patients.rda")

  pre <- patients %>%
    check_rule(precedence(activity_a = "surgery", activity_b = "treatment"))

  expect_s3_class(pre, "eventlog")

  expect_equal(dim(pre), c(nrow(patients), ncol(patients) + 1))
  expect_equal(colnames(pre), c(colnames(patients), "precedence_surgery_treatment"))

  # All "treatment"s were preceded by "surgery".
  # George Doe lacks "treatment", so rule is satisfied.
  expect_true(all(pre$precedence_surgery_treatment))
})

test_that("test precedence on eventlog", {

  load("./testdata/patients.rda")

  pre <- patients %>%
    filter(!(patient == "Jane Doe" & activity == "surgery")) %>%
    check_rule(precedence(activity_a = "surgery", activity_b = "treatment"))

  expect_s3_class(pre, "eventlog")

  expect_equal(dim(pre), c(nrow(patients) - 2, ncol(patients) + 1))
  expect_equal(colnames(pre), c(colnames(patients), "precedence_surgery_treatment"))

  # Jane Doe's "treatment" was not preceded by "surgery".
  # George Doe lacks "treatment", so rule is satisfied.
  expect_true(all(pre[pre$patient != "Jane Doe",]$precedence_surgery_treatment))
  expect_false(any(pre[pre$patient == "Jane Doe",]$precedence_surgery_treatment))
})

test_that("test precedence on eventlog when activity_b is not present", {

  load("./testdata/patients.rda")

  res <- patients %>%
    check_rule(precedence(activity_a = "check-in", activity_b = "register"))

  expect_s3_class(res, "eventlog")

  expect_equal(dim(res), c(nrow(patients), ncol(patients) + 1))
  expect_equal(colnames(res), c(colnames(patients), "precedence_check_in_register"))

  # George Doe lacks "check-in".
  # John and Jane Doe lack "register", so rule is satisfied.
  expect_true(all(res[res$patient != "George Doe",]$precedence_check_in_register))
  expect_false(any(res[res$patient == "George Doe",]$precedence_check_in_register))
})

test_that("test precedence on eventlog fails on non-existing activity", {

  load("./testdata/patients.rda")

  expect_error(
    pre <- patients %>%
      check_rule(precedence("blood sample", "administer medication")),
    "*Activity blood sample not found in log*")

  expect_error(
    pre <- patients %>%
      check_rule(precedence("check-in", "administer medication")),
    "*Activity administer medication not found in log*")
})

test_that("test precedence on grouped_eventlog", {

  load("./testdata/patients_grouped_resource.rda")

  pre <- patients_grouped_resource %>%
    check_rule(precedence(activity_a = "surgery", activity_b = "treatment"))

  expect_s3_class(pre, "grouped_eventlog")

  expect_equal(dim(pre), c(nrow(patients_grouped_resource), ncol(patients_grouped_resource) + 1))
  expect_equal(colnames(pre), c(colnames(patients_grouped_resource), "precedence_surgery_treatment"))
  expect_equal(groups(pre), groups(patients_grouped_resource))

  # All "treatment"s were preceded by "surgery".
  # George Doe lacks "treatment", so rule is satisfied.
  expect_true(all(pre$precedence_surgery_treatment))
})


#### activitylog ####

test_that("test precedence on activitylog", {

  load("./testdata/patients_act.rda")

  pre <- patients_act %>%
    check_rule(precedence(activity_a = "surgery", activity_b = "treatment"))

  expect_s3_class(pre, "activitylog")

  expect_equal(dim(pre), c(nrow(patients_act), ncol(patients_act) + 1))
  expect_equal(colnames(pre), c(colnames(patients_act), "precedence_surgery_treatment"))

  # All "treatment"s were preceded by "surgery".
  # George Doe lacks "treatment", so rule is satisfied.
  expect_true(all(pre$precedence_surgery_treatment))
})

test_that("test precedence on grouped_activitylog", {

  load("./testdata/patients_act_grouped_resource.rda")

  pre <- patients_act_grouped_resource %>%
    check_rule(precedence(activity_a = "surgery", activity_b = "treatment"))

  expect_s3_class(pre, "grouped_activitylog")

  expect_equal(dim(pre), c(nrow(patients_act_grouped_resource), ncol(patients_act_grouped_resource) + 1))
  expect_equal(colnames(pre), c(colnames(patients_act_grouped_resource), "precedence_surgery_treatment"))
  expect_equal(groups(pre), groups(patients_act_grouped_resource))

  # All "treatment"s were preceded by "surgery".
  # George Doe lacks "treatment", so rule is satisfied.
  expect_true(all(pre$precedence_surgery_treatment))
})

Try the processcheckR package in your browser

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

processcheckR documentation built on Oct. 3, 2022, 5:05 p.m.