tests/testthat/test-phed.R

test_that("phed runs correctly", {
  
  # missing months
  moy_factor_test <- read.table(header = TRUE, sep = ",", text = "
      month,freeway,non_freeway
      1,0.94,0.94
      2,0.88,0.88
      3,1.01,1.04
      4,1.01,1.01
      5,1.05,1.05
      6,1.04,1.04
      7,1.05,1.05
      8,1.08,1.08
      9,0.99,0.99
      12,0.97,0.97")
  
  expect_warning(phed(travel_time_readings = test_path("testdata", "Readings.csv"),
                      tmc_identification = test_path("testdata", "TMC_Identification.csv"),
                      speed_limits = fread(test_path("testdata", "speed_limits.csv")),
                      urban_code = 56139,
                      population = 52898,
                      moy_factor = moy_factor_test))
  
  # missing days
  dow_factor_test <- read.table(header = TRUE, sep = ",", text = "
      day,freeway,non_freeway
      1,1.05,1.05
      2,1.05,1.05
      3,1.05,1.05
      4,1.05,1.05
      5,1.1,1.1")
  
  expect_warning(phed(travel_time_readings = test_path("testdata", "Readings.csv"),
                      tmc_identification = test_path("testdata", "TMC_Identification.csv"),
                      speed_limits = fread(test_path("testdata", "speed_limits.csv")),
                      urban_code = 56139,
                      population = 52898,
                      dow_factor = dow_factor_test))
  
  # out of range
  dow_factor_test <- read.table(header = TRUE, sep = ",", text = "
      day,freeway,non_freeway
      2,0.05,0.05
      3,0.05,0.05
      4,0.05,0.05
      5,0.05,0.05
      6,0.1,0.1")
  
  expect_warning(phed(travel_time_readings = test_path("testdata", "Readings.csv"),
                      tmc_identification = test_path("testdata", "TMC_Identification.csv"),
                      speed_limits = fread(test_path("testdata", "speed_limits.csv")),
                      urban_code = 56139,
                      population = 52898,
                      dow_factor = dow_factor_test))
  
  # out of range
  hod_profile_test <- read.table(header = TRUE, sep = ",", text = "
      hour,freeway,non_freeway
      6,1.063,1.046
      7,0.071,0.064
      8,0.0615,0.056
      9,0.0525,0.052
      15,0.0725,0.0735
      16,0.0785,0.0795
      17,0.07,0.07
      18,0.0555,0.0575
      19,0.042,0.047")
  
  expect_warning(phed(travel_time_readings = test_path("testdata", "Readings.csv"),
                      tmc_identification = test_path("testdata", "TMC_Identification.csv"),
                      speed_limits = fread(test_path("testdata", "speed_limits.csv")),
                      urban_code = 56139,
                      population = 52898,
                      hod_profile = hod_profile_test))
  
  expect_equal({
    phed_scores <- phed(urban_code = 56139,
       population = 52898,
       travel_time_readings = test_path("testdata", "Readings.csv"),
       tmc_identification = test_path("testdata", "TMC_Identification.csv"),
       speed_limits = fread(test_path("testdata", "speed_limits.csv"))
       )
    round(phed_scores[, sum(delay, na.rm = TRUE) / 52898], 2)
    }, 
       0.18,
       tolerance = 1
  )
  
})
markegge/fhwa_pm3 documentation built on June 16, 2024, 5:45 a.m.