tests/testthat/test-emis.R

context("emis")
data(net)
net <- sf::st_as_sf(net)[1:10, ]
data(pc_profile)
data(profiles)
data(fe2015)
data(fkm)
PC_G <- c(33491,22340,24818,31808,46458,28574,24856,28972,37818,49050,87923,
          133833,138441,142682,171029,151048,115228,98664,126444,101027,
          84771,55864,36306,21079,20138,17439, 7854,2215,656,1262,476,512,
          1181, 4991, 3711, 5653, 7039, 5839, 4257,3824, 3068)
veh <- data.frame(PC_G = PC_G)
pc1 <- my_age(x = net$ldv, y = PC_G, name = "PC")
pcw <- temp_fact(net$ldv+net$hdv, pc_profile)
speed <- netspeed(pcw, net$ps, net$ffs, net$capacity, net$lkm, alpha = 1)
lef <- EmissionFactorsList(fe2015[fe2015$Pollutant=="CO", "PC_G"])

test_that("emis stops", {
  expect_error(round(emis(veh = pc1,
                          lkm = as.numeric(net$lkm),
                          ef = lef,
                          speed = speed,
                          profile = profiles$PC_JUNE_2014)[1], 2),
               "lkm.?\\(?")
})


test_that("emis works", {
  expect_error(round(emis(veh = pc1,
                          lkm = units::set_units(net$lkm, "m"),
                          ef = lef,
                          speed = speed,
                          profile = profiles$PC_JUNE_2014)[1], 2),
               ".")
})

test_that("emis works", {
  expect_error(round(emis(veh = pc1,
                          lkm = net$lkm,
                          ef = lef,
                          profile = profiles$PC_JUNE_2014)[1], 2),
               "Add.?\\(?")
})


netsf <- sf::st_as_sf(net)
pc1sf <- sf::st_sf(pc1, geometry = netsf$geometry)
test_that("emis works", {
  expect_equal(round(emis(veh = pc1sf,
                          lkm = net$lkm,
                          ef = lef,
                          speed = speed,
                          profile = profiles$PC_JUNE_2014)[1], 2),
               1.2)
})

test_that("emis message", {
  expect_message(emis(veh = pc1sf,
                      lkm = net$lkm,
                      ef = lef,
                      speed = speed,
                      profile = profiles$PC_JUNE_2014,
                      verbose = TRUE),
                 "Conv.?\\(?")
})

test_that("emis warns", {
  expect_warning(emis(veh = pc1,
                      lkm = net$lkm,
                      ef = lef,
                      speed = speed,
                      profile = profiles$PC_JUNE_2014,
                      hour = 24)[1],
                 "Argu?")
})




test_that("emis message", {
  expect_message(emis(veh = pc1,
                      lkm = net$lkm,
                      ef = EmissionFactors(3),
                      verbose = TRUE),
                 "If.?\\(?")
})

nrow(pc1)
length(net$lkm)
test_that("emis stops", {
  expect_error(emis(veh = pc1,
                    lkm = net$lkm[1],
                    ef = EmissionFactors(3),
                    verbose = TRUE),
               "Number.?\\(?")
})

test_that("emis works", {
  expect_equal(round(emis(veh = pc1,
                          lkm = net$lkm,
                          ef = EmissionFactors(3))[1,1]),
               Emissions(81))
})

test_that("emis works", {
  expect_equal(round(emis(veh = pc1,
                          lkm = net$lkm,
                          ef = EmissionFactors(rep(3, ncol(pc1))),
                          fortran = TRUE)[1,1]),
               Emissions(81))
})


test_that("emis works", {
  expect_equal(round(emis(veh = pc1,
                          lkm = net$lkm,
                          ef = EmissionFactors(rep(3, ncol(pc1))),
                          fortran = TRUE)[1,1]),
               Emissions(81))
})


test_that("emis error", {
  expect_error(emis(veh = pc1,
                          lkm = net$lkm,
                          ef = EmissionFactors(3),
                          fortran = TRUE),
               ".?")
})


test_that("emis stops", {
  expect_error(emis(veh = pc1[1:3, ],
                    lkm = net$lkm,
                    ef = EmissionFactorsList(1:41),
                    speed = speed$S1,
                    verbose = TRUE),
               "Number.?\\(?")
})

test_that("emis stops", {
  expect_error(emis(veh = pc1,
                    lkm = net$lkm,
                    ef = EmissionFactorsList(1:4),
                    speed = speed$S1[1],
                    verbose = TRUE),
               "Number.?\\(?")
})


test_that("emis stops", {
  expect_error(emis(veh = pc1,
                    lkm = net$lkm,
                    ef = EmissionFactorsList(1:4)),
               "Add.?\\(?")
})

test_that("emis NOT works", {
  expect_equal(round(
    emis(veh = pc1,
         lkm = net$lkm,
         # one ef for each type of vehicle (ncol veh)
         ef = EmissionFactorsList(1:ncol(pc1)),
         speed = speed$S1)$V1[1]),
    Emissions(27))
})



test_that("emis works", {
  expect_equal(round(emis(veh = pc1,
                          lkm = net$lkm,
                          ef = lef,
                          speed = speed,
                          profile = profiles$PC_JUNE_2014$Monday)[1], 2),
               1.2)
})


test_that("emis works", {
  expect_equal(round(emis(veh = pc1[, 1:2],
                          lkm = net$lkm,
                          ef = lef,
                          speed = speed,
                          profile = profiles$PC_JUNE_2014$Monday,
                          fortran = TRUE)[1], 2),
               1.2)
})

test_that("emis works", {
  expect_equal(round(emis(veh = pc1[, 1:2],
                          lkm = net$lkm,
                          ef = lef,
                          speed = speed,
                          profile = profiles$PC_JUNE_2014$Monday,
                          fortran = TRUE)[1], 2),
               1.2)
})


test_that("emis works", {
  expect_equal(round(emis(veh = list(pc1, pc1),
                          lkm = net$lkm,
                          ef = lef,
                          speed = speed,
                          profile = profiles$PC_JUNE_2014$Monday)[1], 2),
               4.16)
})

test_that("emis works", {
  expect_equal(round(emis(veh = list(pc1[, 1:2], pc1[, 1:2]),
                          lkm = net$lkm,
                          ef = lef,
                          speed = speed,
                          profile = profiles$PC_JUNE_2014$Monday)[1], 2),
               4.16)
})
test_that("emis message", {
  expect_message(emis(veh = list(pc1[, 1:2], pc1[, 1:2]),
                      lkm = net$lkm,
                      ef = lef,
                      speed = speed,
                      profile = profiles$PC_JUNE_2014$Monday,
                      verbose = TRUE),
                 "Number.?\\(?")
})
ibarraespinosa/vein documentation built on April 13, 2024, 8:51 p.m.