Skip to content

Commit

Permalink
Feat/85 flag portfolio in precheck (#88)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexAxthelm authored Aug 15, 2024
1 parent becdd7e commit 03d6c13
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 27 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: workflow.pacta
Title: Run PACTA
Version: 0.0.0.9008
Version: 0.0.0.9009
Authors@R:
c(person(given = "CJ",
family = "Yetman",
Expand Down
21 changes: 15 additions & 6 deletions R/calc_weights_and_outputs.R
Original file line number Diff line number Diff line change
Expand Up @@ -213,13 +213,22 @@ calc_weights_prechecks <- function(
total_portfolio,
portfolio_type,
output_dir,
data_dir
data_dir,
check_portfolio = TRUE
) {
if (is.null(total_portfolio)) {
log_warn("Portfolio is NULL.")
} else if (nrow(total_portfolio) == 0L) {
log_error("Portfolio has no rows.")
stop("Portfolio has no rows.")
if (check_portfolio) {
if (
missing(total_portfolio) ||
is.null(total_portfolio) ||
nrow(total_portfolio) == 0L
) {
log_error("Portfolio has no rows.")
stop("Portfolio has no rows.")
} else {
log_trace("Portfolio has rows.")
}
} else {
log_trace("Skipping portfolio check.")
}
if (portfolio_type == "Equity") {
input_files <- c(
Expand Down
24 changes: 14 additions & 10 deletions R/run_analysis.R
Original file line number Diff line number Diff line change
Expand Up @@ -79,31 +79,35 @@ run_analysis <- function(
analysis_prechecks <- function(
total_portfolio_path,
pacta_data_dir,
output_dir
output_dir,
check_portfolio = TRUE
) {
pacta.workflow.utils::check_io(
input_files = total_portfolio_path,
output_dir = output_dir
)
if (is.null(total_portfolio_path)) {
total_portfolio <- NULL
} else {
if (check_portfolio) {
pacta.workflow.utils::check_io(
input_files = total_portfolio_path,
output_dir = output_dir
)
total_portfolio <- readRDS(total_portfolio_path)
log_trace(
"Checking for PACTA relevant data in file: \"{total_portfolio_path}\"."
)
pacta.portfolio.utils::quit_if_no_pacta_relevant_data(total_portfolio)
} else {
log_trace("Skipping portfolio check.")
total_portfolio <- data.frame()
}
calc_weights_prechecks(
total_portfolio = total_portfolio,
portfolio_type = "Equity",
output_dir = output_dir,
data_dir = pacta_data_dir
data_dir = pacta_data_dir,
check_portfolio = check_portfolio
)
calc_weights_prechecks(
total_portfolio = total_portfolio,
portfolio_type = "Bonds",
output_dir = output_dir,
data_dir = pacta_data_dir
data_dir = pacta_data_dir,
check_portfolio = check_portfolio
)
}
4 changes: 2 additions & 2 deletions R/run_pacta.R
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ run_pacta <- function(
output_dir = output_dir
)
analysis_prechecks(
total_portfolio_path = NULL,
pacta_data_dir = pacta_data_dir,
output_dir = output_dir
output_dir = output_dir,
check_portfolio = FALSE
)

run_audit(
Expand Down
11 changes: 3 additions & 8 deletions tests/testthat/test-analysis_prechecks.R
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ test_that("audit_prechecks fails when total_portfolio.rds missing", {
regexp = "^IO checks failed.$"
)
})
test_that("analysis_prechecks passes when port missing, but path is NULL", {
test_that("analysis_prechecks passes port missing, check_portfolio is FALSE", {
pacta_data_dir <- withr::local_tempdir()
filenames <- c(
"bonds_abcd_scenario.rds",
Expand All @@ -100,17 +100,12 @@ test_that("analysis_prechecks passes when port missing, but path is NULL", {
}

output_dir <- withr::local_tempdir()
portfolio <- data.frame(
asset_type = "Equity",
has_asset_level_data = TRUE,
stringsAsFactors = FALSE
)
total_portfolio_path <- file.path(output_dir, "total_portfolio.rds")

results <- analysis_prechecks(
total_portfolio_path = NULL,
pacta_data_dir = pacta_data_dir,
output_dir = output_dir
output_dir = output_dir,
check_portfolio = FALSE
)
expect_identical(
object = results,
Expand Down

0 comments on commit 03d6c13

Please sign in to comment.