context("modify design")
test_that("test modify declare design ", {
library(dplyr)
N <- 500
my_population <- declare_model(N = N, noise = rnorm(N))
my_potential_outcomes <- declare_potential_outcomes(Y_Z_0 = noise, Y_Z_1 = noise + rnorm(N, mean = 2, sd = 2))
my_assignment <- declare_assignment(Z = complete_ra(N, m = 25), label = "a_label")
design <- my_population +
my_potential_outcomes +
declare_step(dplyr::mutate, q = 5) +
my_assignment
my_assignment_2 <- declare_assignment(Z2 = complete_ra(N, m = 25))
expect_length(replace_step(design, new_step = my_assignment_2, step = my_assignment), 4)
expect_length(replace_step(design, new_step = my_assignment_2, step = 4), 4)
expect_length(replace_step(design, new_step = my_assignment_2, step = "a_label"), 4)
redesigned <- replace_step(design, new_step = my_assignment_2, step = my_assignment)
expect_equal(names(redesigned), c("my_population", "my_potential_outcomes", "custom", "my_assignment_2"))
expect_length(insert_step(design, declare_step(mutate, blah = 6), before = my_potential_outcomes), 5)
expect_length(insert_step(design, declare_step(mutate, blah = 6), after = my_potential_outcomes), 5)
expect_length(replace_step(design, declare_step(mutate, blah = 10), step = my_population), 4)
expect_length(delete_step(design, 3), 3)
})
test_that("placement doesn't matter", {
my_population <-
declare_model(
N = 100,
noise = rnorm(N),
label = "mypop"
)
my_potential_outcomes <-
declare_model(
Y_Z_0 = noise,
Y_Z_1 = noise + rnorm(N, mean = 2, sd = 2)
)
my_assignment <- declare_assignment(Z = complete_ra(N, m = 50))
my_assignment_2 <- declare_assignment(Z = complete_ra(N, m = 25))
design <- my_population + my_potential_outcomes + my_assignment
expect_length(insert_step(design, declare_step(mutate, income = noise^2), after = my_assignment), 4)
expect_length(insert_step(design, declare_step(mutate, income = noise^2), before = my_assignment), 4)
expect_length(insert_step(design, declare_step(mutate, income = noise^2), before = "mypop"), 4)
expect_error(insert_step(design, declare_step(mutate, income = noise^2), before = "notfound"))
expect_error(insert_step(design, declare_step(mutate, income = noise^2)))
})
test_that("names are correct", {
my_population <- declare_model(N = 100, noise = rnorm(N))
my_potential_outcomes <- declare_model(Y_Z_0 = noise, Y_Z_1 = noise + rnorm(N, mean = 2, sd = 2))
my_assignment <- declare_assignment(Z = complete_ra(N, m = 25), label = "a_label")
design <- my_population +
my_potential_outcomes +
my_assignment +
declare_measurement(Y = reveal_outcomes(Y ~ Z))
processing <- declare_step(handler = fabricate, q = 5)
linear <- declare_estimator(Y ~ Z,
.method = lm_robust,
label = "linear"
)
saturated <- declare_estimator(Y ~ Z, label = "saturated", .method = lm_robust)
neighbors_design <- insert_step(design, after = 3, processing)
expect_equal(
names(neighbors_design),
c("my_population", "my_potential_outcomes", "a_label", "processing", "measurement")
)
check0 <- neighbors_design + linear
check1 <- neighbors_design + saturated
check2 <- neighbors_design + linear + saturated
expect_equal(
names(check0),
c(
"my_population", "my_potential_outcomes", "a_label", "processing",
"measurement", "linear"
)
)
expect_equal(
names(check1),
c(
"my_population", "my_potential_outcomes", "a_label", "processing",
"measurement", "saturated"
)
)
expect_equal(
names(check2),
c(
"my_population", "my_potential_outcomes", "a_label", "processing",
"measurement", "linear", "saturated"
)
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.