tests/manual_tests/test-machedsetobject.R

test_that("test weights function", {
  
  dem.panel <- PanelData(dem, "wbcode2", "year", "dem", "y")
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "att",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  r1 <- extract(PM.results, qoi = "att")
  lt <- weights(r1)
  expect_true(length(lt) == 105)
  expect_true(sum(lt[[1]]) == 1) #just verify that the first matched set has the properties it should
  
  
  r1 <- extract(PM.results) #check default behavior
  lt <- weights(r1)
  expect_true(length(lt) == 105)
  expect_true(sum(lt[[1]]) == 1) #just verify that the first matched set has the properties it should
  
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "art",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  r1 <- extract(PM.results, qoi = "art")
  lt <- weights(r1)
  expect_true(length(lt) == 54)
  expect_true(sum(lt[[1]]) == 1) #just verify that the first matched set has the properties it should
  
  
  # PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
  #                          refinement.method = "ps.match",
  #                          match.missing = TRUE,
  #                          covs.formula = ~ tradewb,
  #                          size.match = 5, qoi = "atc",
  #                          lead = 0:4,
  #                          forbid.treatment.reversal = FALSE)
  # r1 <- extract(PM.results, qoi = "atc")
  
  
  
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "ate",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  r1 <- extract(PM.results, qoi = "att")
  lt <- weights(r1)
  expect_true(length(lt) == 105)
  expect_true(sum(lt[[1]]) == 1) #just verify that the first matched set has the properties it should
  r1 <- extract(PM.results, qoi = "atc")
  lt <- weights(r1)
  expect_true(length(lt) == 3287)
  expect_true(sum(lt[[1]]) == 1) #just verify that the first matched set has the properties it should
  
  
})


test_that("test distances function", {
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "mahalanobis",
                           verbose = TRUE,
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "att",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  r1 <- extract(PM.results, qoi = "att")
  lt <- distances(r1)
  expect_true(length(lt) == 105)
  
  
  
  r1 <- extract(PM.results) #check default behavior
  lt <- distances(r1)
  expect_true(length(lt) == 105)
  
  
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "mahalanobis",
                           verbose = TRUE,
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "art",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  r1 <- extract(PM.results, qoi = "art")
  lt <- distances(r1)
  expect_true(length(lt) == 54)

  
  
  # PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
  #                          refinement.method = "ps.match",
  #                          match.missing = TRUE,
  #                          covs.formula = ~ tradewb,
  #                          size.match = 5, qoi = "atc",
  #                          lead = 0:4,
  #                          forbid.treatment.reversal = FALSE)
  # r1 <- extract(PM.results, qoi = "atc")
  
  
  
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "mahalanobis",
                           match.missing = TRUE,
                           verbose = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "ate",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  r1 <- extract(PM.results, qoi = "att")
  lt <- distances(r1)
  expect_true(length(lt) == 105)
  
  r1 <- extract(PM.results, qoi = "atc")
  lt <- distances(r1)
  expect_true(length(lt) == 3287)
  
  
  
  
  #check that distances fails for non matching based method
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.weight",
                           verbose= TRUE,
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "art",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  r1 <- extract(PM.results, qoi = "art")
  expect_error(lt <- distances(r1))
  
})

test_that("test print method", {
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "att",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
 
  mso <- extract(PM.results)
  expect_output(print(mso))
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "art",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  mso <- extract(PM.results)
  expect_output(print(mso))
  
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                         refinement.method = "ps.match",
                         match.missing = TRUE,
                         covs.formula = ~ tradewb,
                         size.match = 5, qoi = "atc",
                         lead = 0:4,
                         forbid.treatment.reversal = FALSE)
  
  mso <- extract(PM.results)
  expect_output(print(mso))
  
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "ate",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  expect_error(mso <- extract(PM.results))
  expect_error(mso <- extract(PM.results, qoi = "ate"))
  mso <- extract(PM.results, qoi = "att")
  expect_output(print(mso))
  
  mso <- extract(PM.results, qoi = "atc")
  expect_output(print(mso))
})

test_that("test summary method", {
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "att",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  mso <- extract(PM.results)
  smso <- summary(mso)
  expect_true(length(smso) == 5L)
  expect_true(all(names(smso) == c("overview", "set.size.summary", "number.of.treated.units", "num.units.empty.set", "lag")))
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "atc",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  mso <- extract(PM.results)
  smso <- summary(mso)
  expect_true(length(smso) == 5L)
  expect_true(all(names(smso) == c("overview", "set.size.summary", "number.of.treated.units", "num.units.empty.set", "lag")))
  
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "art",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  mso <- extract(PM.results)
  smso <- summary(mso)
  expect_true(length(smso) == 5L)
  expect_true(all(names(smso) == c("overview", "set.size.summary", "number.of.treated.units", "num.units.empty.set", "lag")))
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "ate",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  mso <- extract(PM.results, qoi = "att")
  smso <- summary(mso)
  expect_true(length(smso) == 5L)
  expect_true(all(names(smso) == c("overview", "set.size.summary", "number.of.treated.units", "num.units.empty.set", "lag")))
  
  mso <- extract(PM.results, qoi = "atc")
  smso <- summary(mso)
  expect_true(length(smso) == 5L)
  expect_true(all(names(smso) == c("overview", "set.size.summary", "number.of.treated.units", "num.units.empty.set", "lag")))
})

test_that("test plot method (manual)", {
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.match",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "att",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  mso <- extract(PM.results)
  plot(mso, panel.data = dem.panel)
  plot(mso, panel.data = dem.panel, include.missing = FALSE)
  
  dem.panel <- PanelData(dem, 'wbcode2', 'year', 'dem', 'y')
  PM.results <- PanelMatch(panel.data = dem.panel, lag = 4,
                           refinement.method = "ps.weight",
                           match.missing = TRUE,
                           covs.formula = ~ tradewb,
                           size.match = 5, qoi = "att",
                           lead = 0:4,
                           forbid.treatment.reversal = FALSE)
  
  mso <- extract(PM.results)
  plot(mso, panel.data = dem.panel)
  plot(mso, panel.data = dem.panel, include.missing = FALSE)
  
})

Try the PanelMatch package in your browser

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

PanelMatch documentation built on April 3, 2025, 6:34 p.m.