Nothing
library(dplyr)
library(r2dii.data)
test_that("with fake data outputs known value", {
out <- target_sda(
fake_matched(
sector_abcd = "cement"
),
abcd = fake_abcd(
sector = "cement",
technology = "cement",
year = c(2020, 2021, 2022),
emission_factor = c(1, 2, 3)
),
co2_intensity_scenario = fake_co2_scenario(
year = c(2020, 2050),
emission_factor = c(0.6, 0.2)
),
region_isos = region_isos_stable
)
expect_snapshot(out)
out_company <- target_sda(
fake_matched(
sector_abcd = "cement"
),
abcd = fake_abcd(
sector = "cement",
technology = "cement",
year = c(2020, 2021, 2022),
emission_factor = c(1, 2, 3)
),
co2_intensity_scenario = fake_co2_scenario(
year = c(2020, 2050),
emission_factor = c(0.6, 0.2)
),
by_company = TRUE,
region_isos = region_isos_stable
)
expect_snapshot(out_company)
})
test_that("outputs is ungrouped", {
out <- target_sda(
fake_matched(
sector_abcd = "cement"
),
fake_abcd(
sector = "cement",
year = c(2020, 2050)
),
co2_intensity_scenario = fake_co2_scenario(
emission_factor = c(1, 2),
year = c(2020, 2050)
),
region_isos = region_isos_stable
)
expect_false(dplyr::is_grouped_df(out))
})
test_that("warns when input data is grouped", {
grouped_data <- group_by(fake_matched(sector_abcd = "cement"), id_loan)
out <- function() {
target_sda(
grouped_data,
abcd = fake_abcd(
sector = "cement",
year = c(2020, 2050)
),
co2_intensity_scenario = fake_co2_scenario(
emission_factor = c(1, 2),
year = c(2020, 2050)
),
region_isos = region_isos_stable
)
}
expect_warning(out(), "Ungrouping")
})
test_that("with bad `data` errors with informative message", {
expect_error(
target_sda("bad", fake_abcd(), fake_co2_scenario()),
"data.frame.*not.*TRUE"
)
expect_error(
target_sda(fake_matched(), "bad", fake_co2_scenario()),
"data.frame.*not.*TRUE"
)
expect_error(
target_sda(fake_matched(), fake_abcd(), "bad"),
"data.frame.*not.*TRUE"
)
expect_error(
target_sda(
fake_matched(),
abcd = fake_abcd(),
co2_intensity_scenario = fake_co2_scenario(),
use_credit_limit = "bad"
),
"logical.*not.*TRUE",
)
})
test_that("w/ missing crucial names errors gracefully", {
bad <- function(data, x) rename(data, bad = dplyr::one_of(x))
expect_error_missing_names <- function(match_result = fake_matched(),
abcd = fake_abcd(),
scenario = fake_co2_scenario()) {
expect_error(
class = "missing_names",
target_sda(match_result, abcd, scenario)
)
}
mch <- fake_matched()
expect_error_missing_names(match_result = bad(mch, "loan_size_outstanding"))
expect_error_missing_names(match_result = bad(mch, "loan_size_credit_limit"))
expect_error_missing_names(match_result = bad(mch, "name_abcd"))
expect_error_missing_names(match_result = bad(mch, "sector_abcd"))
expect_error_missing_names(abcd = bad(fake_abcd(), "name_company"))
expect_error_missing_names(abcd = bad(fake_abcd(), "sector"))
expect_error_missing_names(abcd = bad(fake_abcd(), "year"))
expect_error_missing_names(abcd = bad(fake_abcd(), "emission_factor"))
expect_error_missing_names(abcd = bad(fake_abcd(), "production"))
scen <- fake_co2_scenario()
expect_error_missing_names(scenario = bad(scen, "sector"))
expect_error_missing_names(scenario = bad(scen, "year"))
expect_error_missing_names(scenario = bad(scen, "emission_factor"))
})
test_that("without `sector` throws no error", {
# RMI-PACTA/r2dii.analysis/pull/62#issuecomment-634651157
without_sector <- select(fake_matched(sector_abcd = "cement"), -sector)
expect_error_free(
target_sda(
without_sector,
abcd = fake_abcd(sector = "cement"),
co2_intensity_scenario = fake_co2_scenario(),
region_isos = region_isos_stable
)
)
})
test_that("properly weights emissions factors", {
companies <- c("a", "b")
out <- target_sda(
fake_matched(
id_loan = c(1, 2),
name_abcd = companies,
sector_abcd = "cement"
),
abcd = fake_abcd(
name_company = companies,
sector = "cement",
technology = "cement",
year = 2020,
emission_factor = c(1, 2)
),
co2_intensity_scenario = fake_co2_scenario(
year = c(2020, 2050),
emission_factor = c(0.6, 0.2)
),
region_isos = region_isos_stable
)
initial_data <- out %>%
filter(
year == 2020,
emission_factor_metric == "projected"
)
expect_equal(initial_data$emission_factor_value, 1.5)
})
test_that("outputs expected names", {
out <- target_sda(
fake_matched(sector_abcd = "cement"),
abcd = fake_abcd(
sector = "cement",
technology = "cement",
year = c(2020, 2021, 2022),
emission_factor = c(1, 2, 3)
),
co2_intensity_scenario = fake_co2_scenario(
year = c(2020, 2050), emission_factor = c(0.6, 0.2)
),
region_isos = region_isos_stable
)
expected_names <- c(
"sector",
"year",
"region",
"scenario_source",
"emission_factor_metric",
"emission_factor_value"
)
expect_named(out, expected_names)
})
test_that("with known input outputs as expected", {
# TODO: Re-factor this test into smaller isolated expected output tests
matched <- fake_matched(sector_abcd = "cement")
abcd <- fake_abcd(
sector = "cement",
technology = "cement",
name_company = c(rep("shaanxi auto", 4), "company 2"),
year = c(2020, 2021, 2022, 2025, 2020),
emission_factor = c(0.9, 0.9, 0.8, 0.5, 12)
)
co2_intensity_scenario <- fake_co2_scenario(
scenario = c(rep("b2ds", 2), rep("sds", 2)),
year = rep(c(2020, 2025), 2),
emission_factor = c(0.5, 0.1, 0.5, 0.4)
)
out <- target_sda(
matched,
abcd,
co2_intensity_scenario,
region_isos = region_isos_stable
) %>%
arrange(.data$year) %>%
split(.$emission_factor_metric)
expect_equal(out$projected$emission_factor_value, c(0.9, 0.9, 0.8, 0.5))
expect_equal(
out$corporate_economy$emission_factor_value, c(6.45, 0.9, 0.8, 0.5)
)
expect_equal(
round(out$adjusted_scenario_b2ds$emission_factor_value, 2),
c(6.45, 5.42, 4.39, 3.35, 2.32, 1.29)
)
expect_equal(
round(out$adjusted_scenario_sds$emission_factor_value, 2),
c(6.45, 6.19, 5.93, 5.68, 5.42, 5.16)
)
expect_equal(
round(out$target_b2ds$emission_factor_value, 2),
c(0.9, 0.98, 1.06, 1.13, 1.21, 1.29)
)
expect_equal(
round(out$target_sds$emission_factor_value, 2),
c(0.9, 1.75, 2.60, 3.46, 4.31, 5.16)
)
})
test_that("with no matching data warns", {
no_matches <- fake_matched(sector_abcd = "bad")
if (packageVersion("testthat") >= "2.99.0.9000") {
expect_warning(
class = "no_match",
target_sda(no_matches, fake_abcd(), fake_co2_scenario())
)
} else {
expect_warning(
target_sda(no_matches, fake_abcd(), fake_co2_scenario()), "no match"
)
}
bad_scenario <- fake_co2_scenario(sector = "bad")
expect_warning(
target_sda(
fake_matched(),
fake_abcd(),
bad_scenario,
region_isos = region_isos_stable
),
class = "no_match"
)
})
test_that("with duplicated id_loan weights emission_factor as expected (#160)", {
match_result <- fake_matched(
id_loan = c(1, 1),
name_abcd = rep("large company", 2),
sector_abcd = "cement"
)
abcd <- fake_abcd(
sector = "cement",
name_company = "large company",
emission_factor = 2,
year = c(2020, 2025)
)
scen <- fake_co2_scenario(
year = c(2020, 2025),
emission_factor = c(1, 0.5)
)
expect_error(
target_sda(
match_result,
abcd,
scen,
region_isos = region_isos_stable
) %>%
filter(year == min(year)),
class = "unique_ids"
)
})
test_that("with NAs in crucial columns errors with informative message (#146)", {
expect_error_crucial_NAs_portfolio <- function(name) {
data <- fake_matched(sector_abcd = "cement")
abcd <- fake_abcd(
sector = "cement",
year = c(2020, 2050)
)
scen <- fake_co2_scenario(
emission_factor = c(1, 2),
year = c(2020, 2050)
)
data[1, name] <- NA
expect_error(
class = "some_value_is_missing",
target_sda(
data,
abcd,
scen,
region_isos = region_isos_stable
)
)
}
expect_error_crucial_NAs_abcd <- function(name) {
match_result <- fake_matched(sector_abcd = "cement")
data <- fake_abcd(
sector = "cement",
year = c(2020, 2050)
)
scen <- fake_co2_scenario(
emission_factor = c(1, 2),
year = c(2020, 2050)
)
data[1, name] <- NA
expect_error(
class = "some_value_is_missing",
target_sda(
match_result,
data,
scen,
region_isos = region_isos_stable
)
)
}
expect_error_crucial_NAs_scenario <- function(name) {
match_result <- fake_matched(sector_abcd = "cement")
abcd <- fake_abcd(
sector = "cement",
year = c(2020, 2050)
)
data <- fake_co2_scenario(
emission_factor = c(1, 2),
year = c(2020, 2050)
)
data[1, name] <- NA
expect_error(
class = "some_value_is_missing",
target_sda(
match_result,
abcd,
data,
region_isos = region_isos_stable
)
)
}
expect_error_crucial_NAs_portfolio("name_abcd")
expect_error_crucial_NAs_portfolio("sector_abcd")
expect_error_crucial_NAs_abcd("name_company")
expect_error_crucial_NAs_abcd("sector")
expect_error_crucial_NAs_abcd("year")
expect_error_crucial_NAs_scenario("sector")
expect_error_crucial_NAs_scenario("year")
expect_error_crucial_NAs_scenario("emission_factor")
})
test_that("with multiple technologies weights emission_factor as expected (#160)", {
match_result <- fake_matched(
id_loan = c(1, 2),
name_abcd = rep("large company", 2),
sector_abcd = "cement"
)
abcd <- fake_abcd(
sector = "cement",
name_company = "large company",
technology = rep(c("a", "b"), 2),
emission_factor = 2,
year = c(rep(2020, 2), rep(2025, 2))
)
scen <- fake_co2_scenario(
year = c(2020, 2025),
emission_factor = c(1, 0.5)
)
out <- target_sda(
match_result,
abcd,
scen,
region_isos = region_isos_stable
) %>%
filter(year == min(year)) %>%
split(.$emission_factor_metric)
expect_equal(out$projected$emission_factor_value, 2)
expect_equal(out$target_b2ds$emission_factor_value, 2)
})
test_that("with multiple technologies, aggregates production-weighted emission_factor (#160)", {
out <- target_sda(
fake_matched(sector_abcd = "cement"),
abcd = fake_abcd(
sector = "cement",
technology = c("cement 1", "cement 2"),
year = 2020,
production = c(1, 3),
emission_factor = c(4, 132)
),
co2_intensity_scenario = fake_co2_scenario(
year = c(2020, 2050), emission_factor = c(0.6, 0.2)
),
region_isos = region_isos_stable
) %>%
split(.$emission_factor_metric)
expect_equal(out$corporate_economy$emission_factor_value, 100)
})
test_that("with multiple plant_location, aggregates production-weighted emission_factor (#160)", {
out <- target_sda(
fake_matched(sector_abcd = "cement"),
abcd = fake_abcd(
sector = "cement",
plant_location = c("de", "fr"),
year = 2020,
production = c(1, 3),
emission_factor = c(4, 132)
),
co2_intensity_scenario = fake_co2_scenario(
year = c(2020, 2050), emission_factor = c(0.6, 0.2)
),
region_isos = region_isos_stable
) %>%
filter(region == "global") %>%
split(.$emission_factor_metric)
expect_equal(out$corporate_economy$emission_factor_value, 100)
})
test_that("filters and warns when input-data has NAs", {
# Work around: in testthat v2, the `class` argument seems to now work
# https://gist.github.com/maurolepore/c04388c6d4795561fb168172e75154c0
.object <- rlang::expr(
out <- target_sda(
fake_matched(sector_abcd = "cement"),
abcd = fake_abcd(
sector = "cement",
technology = rep(c("cement", "bad"), 2),
year = rep(c(2020, 2050), 2),
emission_factor = c(1, 2, rep(NA, 2))
),
co2_intensity_scenario = fake_co2_scenario(
year = c(2020, 2050), emission_factor = c(0.6, 0.2)
),
region_isos = region_isos_stable
)
)
if (packageVersion("testthat") >= "2.99.0.9000") {
args <- list(object = .object, class = "na_crucial_economic_input")
} else {
args <- list(object = .object, regexp = "emission_factor.*NA")
}
do.call(expect_warning, args)
out <- split(out, out$emission_factor_metric)
expect_equal(out$corporate_economy$emission_factor_value, c(1, 2))
})
test_that("filters and warns when input-data (production in abcd) has NAs #304", {
matched <- fake_matched(
id_loan = c("L1", "L2"),
sector_abcd = c("cement", "power")
)
abcd <- fake_abcd(
sector = c("cement", "power"),
production = c(1,NA)
)
co2_scenario <- fake_co2_scenario(
sector = "cement",
emission_factor = c(1, 0.6),
year = c(2025, 2026)
)
expect_warning(
target_sda(
matched,
abcd,
co2_scenario,
region_isos = region_isos_stable),
class = "na_crucial_economic_input"
)
})
test_that(
"`sector` column is not used from data (should only use `sector_abcd`) (#178)",
{
expect_error_free(
target_sda(
fake_matched(
sector_abcd = "cement"
) %>% select(-sector),
fake_abcd(
sector = "cement",
year = c(2020, 2050)
),
co2_intensity_scenario = fake_co2_scenario(
emission_factor = c(1, 2),
year = c(2020, 2050)
),
region_isos = region_isos_stable
)
)
}
)
test_that("with multiple values of `country_of_domicile` outputs the expected
`emission_factor_value` (#171)", {
this_company <- "company"
this_sector <- "steel"
abcd <- fake_abcd(
country_of_domicile = c("a", "b"),
emission_factor = 0.5,
year = 2020,
name_company = this_company,
sector = this_sector
)
matched <- fake_matched(
name_abcd = this_company,
sector = this_sector,
sector_abcd = this_sector
)
out <- matched %>%
target_sda(
abcd,
co2_intensity_scenario_demo,
region_isos = region_isos_stable
) %>%
split(.$emission_factor_metric)
expect_equal(out$projected$emission_factor_value, 0.5)
})
test_that("outputs same target regardless of years present in abcd", {
matched <- fake_matched(
name_abcd = "company a",
sector_abcd = "steel"
)
abcd_ten_year <- fake_abcd(
sector = "steel",
technology = "steel",
name_company = c(rep("company a", 3), rep("company b", 3)),
emission_factor = c(rep(1.5, 3), rep(2.5, 3)),
year = rep(c(2020, 2025, 2030), 2),
plant_location = "DE"
)
abcd_thirty_year <- fake_abcd(
sector = "steel",
technology = "steel",
name_company = c(rep("company a", 4), rep("company b", 4)),
emission_factor = c(rep(1.5, 4), rep(2.5, 4)),
year = rep(c(2020, 2025, 2030, 2050), 2),
plant_location = "DE"
)
co2_scenario <- fake_co2_scenario(
sector = "steel",
year = c(2020, 2025, 2030, 2050),
emission_factor = c(2, 1.9, 1.8, 0.25)
)
out_ten_year <- target_sda(
matched,
abcd_ten_year,
co2_scenario,
region_isos = region_isos_stable
) %>%
filter(
year == 2030,
emission_factor_metric == "target_b2ds"
)
out_thirty_year <- target_sda(
matched,
abcd_thirty_year,
co2_scenario,
region_isos = region_isos_stable
) %>%
filter(
year == 2030,
emission_factor_metric == "target_b2ds"
)
expect_equal(
out_ten_year$emission_factor_value,
out_thirty_year$emission_factor_value
)
})
test_that("outputs only sectors present in `co2_intensity_scenario` (#308)", {
matched <- fake_matched(
id_loan = c("L1", "L2"),
sector_abcd = c("cement", "power")
)
abcd <- fake_abcd(
sector = c("cement", "power"),
)
co2_scenario <- fake_co2_scenario(
sector = "cement",
emission_factor = c(1, 0.6),
year = c(2025, 2026)
)
out <- target_sda(
matched,
abcd,
co2_scenario,
region_isos = region_isos_stable
)
out_sectors <- unique(out$sector)
scenario_sectors <- unique(co2_scenario$sector)
expect_equal(
setdiff(out_sectors, scenario_sectors),
character(0)
)
})
test_that("doesn't output NAs if abcd and scenario years are misaligned (#307,
#346)", {
matched <- fake_matched(
sector_abcd = "cement"
)
abcd <- fake_abcd(
sector = "cement",
year = c(2024, 2025)
)
co2_scenario <- fake_co2_scenario(
emission_factor = c(1, 0.6, 0.4),
year = c(2023, 2025, 2026)
)
out <- target_sda(
matched,
abcd,
co2_scenario,
region_isos = region_isos_stable
)
expect_false(
any(is.na(out$emission_factor_value))
)
})
test_that("output useful error message when emission_factor is not of type double (#224)", {
matched <- fake_matched()
abcd <- fake_abcd()
co2_intensity_scenario <- fake_co2_scenario()
bad_abcd <- abcd %>%
mutate(
emission_factor = as.character(emission_factor)
)
expect_error(
class = "crucial_column_wrong_type",
target_sda(
matched,
bad_abcd,
co2_intensity_scenario,
region_isos = region_isos_stable
)
)
})
test_that("argument `weight_emission_factor` outputs correctly with known input (#376)", {
matched <- fake_matched(
id_loan = c("L1", "L2"),
name_abcd = c("american cement", "boral cement"),
sector = "cement",
sector_abcd = "cement"
)
abcd <- fake_abcd(
name_company = rep(c("american cement", "boral cement"), 2),
sector = "cement",
technology = "cement integrated facility",
year = rep(c(2020, 2021), each = 2),
emission_factor = rep(c(0.7, 0.5), 2)
)
out <- matched %>%
target_sda(
abcd,
fake_co2_scenario(year = c(2020, 2021), emission_factor = c(1, 0.7)),
by_company = TRUE,
region_isos = region_isos_stable
) %>%
filter(year == 2020, emission_factor_metric == "target_b2ds") %>%
split(.$name_abcd)
abcd <- abcd %>%
filter(!is.na(emission_factor), year == 2020) %>%
select(name_company, year, emission_factor) %>%
split(.$name_company)
expect_equal(
out$`american cement`$emission_factor_value,
abcd$`american cement`$emission_factor
)
expect_equal(
out$`boral cement`$emission_factor_value,
abcd$`boral cement`$emission_factor
)
})
test_that("outputs empty tibble for sectors in `scenario` and `abcd` but not
`data` (#390)", {
abcd <- fake_abcd(
sector = c("cement", "steel")
)
scenario <- fake_co2_scenario(
sector = rep(c("cement", "steel"), each = 2),
year = rep(c(2025, 2026), 2),
emission_factor = rep(c(1, 2), 2)
)
out <- target_sda(
fake_matched(sector_abcd = "cement"),
abcd,
scenario,
region_isos = region_isos_stable
)
out_steel <- filter(out, sector == "steel")
expect_equal(nrow(out_steel), 0L)
})
test_that("region_isos only has lowercase isos #398", {
bad_region_isos <- mutate(region_isos_demo, isos = toupper(isos))
expect_warning(
class = "column_not_in_lowercase",
target_sda(
fake_matched(sector_abcd = "cement", "steel"),
fake_abcd(sector = c("cement", "steel")),
fake_co2_scenario(),
region_isos = bad_region_isos
)
)
})
test_that("produces output with expected start years #439", {
out <- target_sda(
fake_matched(sector_abcd = "cement"),
fake_abcd(sector = "cement", year = c(2024, 2025)),
fake_co2_scenario(year = c(2025, 2050), emission_factor = c(0.5, 0.2)),
region_isos = region_isos_stable
)
out_relevant <- filter(out, grepl("target", emission_factor_metric))
expect_equal(min(out_relevant$year), 2025L)
})
test_that("final year of emission intensity scenario matches final year of adjusted_scenario_* and target_* (#445)", {
matched <- fake_matched(sector_abcd = "cement")
abcd <- fake_abcd(
sector = "cement",
technology = "cement",
name_company = c(rep("shaanxi auto", 6), rep("company 2", 6)),
year = rep(2020:2025, 2),
emission_factor = c(0.9, 0.9, 0.8, 0.7, 0.6, 0.5, rep(2, 6))
)
co2_intensity_scenario <- fake_co2_scenario(
scenario = c(rep("nze_2050", 2), rep("steps", 2)),
year = rep(c(2020, 2050), 2),
emission_factor = c(0.5, 0.1, 0.5, 0.4)
)
out_lbk <- target_sda(
matched,
abcd,
co2_intensity_scenario,
region_isos = region_isos_stable
)
out_company <- target_sda(
matched,
abcd,
co2_intensity_scenario,
region_isos = region_isos_stable,
by_company = TRUE
)
final_co2_intensity_scenario <- co2_intensity_scenario %>%
dplyr::slice_max(
.data$year,
n = 1,
by = c("scenario", "sector", "region", "emission_factor_unit", "scenario_source")
)
final_out_lbk <- out_lbk %>%
dplyr::filter(
grepl("target_|adjusted_scenario_", .data$emission_factor_metric)
) %>%
dplyr::slice_max(
.data$year,
n = 1,
by = c("sector", "region", "scenario_source", "emission_factor_metric")
)
final_out_company <- out_company %>%
dplyr::filter(
grepl("target_|adjusted_scenario_", .data$emission_factor_metric)
) %>%
dplyr::slice_max(
.data$year,
n = 1,
by = c("sector", "region", "scenario_source", "name_abcd", "emission_factor_metric")
)
# final year of co2 intensity scenario is final year for all matching targets
final_year_lbk <- final_out_lbk %>%
tidyr::separate_wider_regex(
emission_factor_metric, c(metric = "target|adjusted_scenario", "_", scenario = ".*")
) %>%
dplyr::inner_join(
final_co2_intensity_scenario,
by = c("sector", "scenario", "scenario_source", "region"),
suffix = c("_final_output", "_final_scenario")
) %>%
dplyr::mutate(
final_year_correct = dplyr::if_else(
.data$year_final_output == .data$year_final_scenario,
TRUE,
FALSE
)
)
expect_equal(unique(final_year_lbk$final_year_correct), TRUE)
final_year_company <- final_out_company %>%
tidyr::separate_wider_regex(
emission_factor_metric, c(metric = "target|adjusted_scenario", "_", scenario = ".*")
) %>%
dplyr::inner_join(
final_co2_intensity_scenario,
by = c("sector", "scenario", "scenario_source", "region"),
suffix = c("_final_output", "_final_scenario")
) %>%
dplyr::mutate(
final_year_correct = dplyr::if_else(
.data$year_final_output == .data$year_final_scenario, TRUE, FALSE
)
)
expect_equal(unique(final_year_company$final_year_correct), TRUE)
})
test_that("target of final year always converges at final value of adjusted_scenario (#445)", {
matched <- fake_matched(sector_abcd = "cement")
abcd <- fake_abcd(
sector = "cement",
technology = "cement",
name_company = c(rep("shaanxi auto", 6), rep("company 2", 6)),
year = rep(2020:2025, 2),
emission_factor = c(0.9, 0.9, 0.8, 0.7, 0.6, 0.5, rep(2, 6))
)
co2_intensity_scenario <- fake_co2_scenario(
scenario = c(rep("nze_2050", 2), rep("steps", 2)),
year = rep(c(2020, 2050), 2),
emission_factor = c(0.5, 0.1, 0.5, 0.4)
)
out_lbk <- target_sda(
matched,
abcd,
co2_intensity_scenario,
region_isos = region_isos_stable
)
out_company <- target_sda(
matched,
abcd,
co2_intensity_scenario,
region_isos = region_isos_stable,
by_company = TRUE
)
final_out_lbk <- out_lbk %>%
dplyr::filter(
grepl("target_|adjusted_scenario_", .data$emission_factor_metric)
) %>%
dplyr::slice_max(
.data$year,
n = 1,
by = c("sector", "region", "scenario_source", "emission_factor_metric")
)
final_out_company <- out_company %>%
dplyr::filter(
grepl("target_|adjusted_scenario_", .data$emission_factor_metric)
) %>%
dplyr::slice_max(
.data$year,
n = 1,
by = c("sector", "region", "scenario_source", "name_abcd", "emission_factor_metric")
)
# final value of target_* is equal to final value of adjusted_scenario_* for loan book
final_targets_converge_lbk <- final_out_lbk %>%
tidyr::separate_wider_regex(
emission_factor_metric, c(metric = "target|adjusted_scenario", "_", scenario = ".*")
) %>%
tidyr::pivot_wider(names_from = "metric", values_from = "emission_factor_value") %>%
dplyr::mutate(
targets_converge = dplyr::if_else(
.data$target == .data$adjusted_scenario, TRUE, FALSE
)
)
expect_equal(unique(final_targets_converge_lbk$targets_converge), TRUE)
# final value of target_* is equal to final value of adjusted_scenario_* for companies
final_targets_converge_company <- final_out_company %>%
tidyr::separate_wider_regex(
emission_factor_metric, c(metric = "target|adjusted_scenario", "_", scenario = ".*")
)
final_targets_converge_company_adjusted <- final_targets_converge_company %>%
dplyr::filter(grepl("adjusted_scenario", .data$metric)) %>%
tidyr::pivot_wider(names_from = "metric", values_from = "emission_factor_value")
final_targets_converge_company_target <- final_targets_converge_company %>%
dplyr::filter(grepl("target", .data$metric)) %>%
tidyr::pivot_wider(names_from = "metric", values_from = "emission_factor_value")
final_targets_converge_company <- final_targets_converge_company_target %>%
dplyr::inner_join(
final_targets_converge_company_adjusted,
by = c("sector", "scenario_source", "scenario", "region", "year"),
suffix = c("_target", "_adjusted")
) %>%
dplyr::mutate(
targets_converge = dplyr::if_else(
.data$target == .data$adjusted_scenario, TRUE, FALSE
)
)
expect_equal(unique(final_targets_converge_company$targets_converge), TRUE)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.