tests/testthat/test-add_fund_portfolio.R

test_that("`add_fund_portfolio()` works as expected", {
  skip_if_R_CMD_check()

  source(here::here("0_portfolio_input_check_functions.R"))

  portfolio <-
    tibble::tribble(
      ~investor_name, ~portfolio_name, ~isin,          ~market_value, ~currency, ~holding_id, ~number_of_shares, ~exchange_rate, ~value_usd, ~company_id, ~company_name,                   ~bloomberg_id, ~corporate_bond_ticker, ~country_of_domicile, ~unit_share_price, ~exchange_rate_usd, ~asset_type, ~security_type,   ~security_mapped_sector, ~security_icb_subsector, ~security_bics_subgroup,  ~bics_sector,  ~maturity_date, ~coupon_value, ~amount_issued, ~current_shares_outstanding_all_classes, ~sector_override, ~sector_boe,  ~subsector_boe, ~sector_dnb, ~sector_ipr,          ~subsector_ipr,                ~is_sb,
      "Test",         "TestPortfolio", "IE00B9346255", 500,           "USD",     "1",         NA_real_,          1,              500,        28581,       "Institutional Cash Series Plc", 34841267,      NA_character_,          "IE",                 121.4076252,       1.2253,             "Funds",     "Open-End Funds", "Other",                 NA_character_,           "Unclassified",           NA_character_, NA_character_,  NA_real_,      NA_real_,       NA_real_,                                FALSE,            "Other",      NA_character_,  "Other",     NA_character_,        NA_character_,                 FALSE,
      "Test",         "TestPortfolio", "DE0007664039", 300,           "USD",     "2",         1.60633774345508,  1,              300,        6781,        "Volkswagen Ag",                 115757,        NA_character_,          "DE",                 186.760226,        1.2253,             "Equity",    "Preference",     "Automotive",            "Automobiles",           "Auto-Cars/Light Trucks", NA_character_, NA_character_,  NA_real_,      NA_real_,       501295300,                               FALSE,            "Automotive", NA_character_,  "C29",       "Consumer Cyclicals", "Consumer Vehicles and Parts", FALSE
    )
  fund_portfolio <-
    tibble::tribble(
      ~isin,          ~market_value, ~currency, ~portfolio_name, ~investor_name, ~holding_id, ~number_of_shares, ~exchange_rate, ~value_usd, ~direct_holding, ~fund_isin,     ~original_value_usd, ~company_id,   ~company_name, ~bloomberg_id, ~corporate_bond_ticker, ~country_of_domicile, ~unit_share_price, ~exchange_rate_usd, ~asset_type,   ~security_type, ~security_mapped_sector, ~security_icb_subsector, ~security_bics_subgroup, ~bics_sector,  ~maturity_date, ~coupon_value, ~amount_issued, ~current_shares_outstanding_all_classes, ~sector_override, ~sector_boe,   ~subsector_boe, ~sector_dnb,   ~sector_ipr,   ~subsector_ipr, ~is_sb,
      "XS2260177394", 100,           "USD",     "TestPortfolio", "Test",         "58",        NA_real_,          1,              100,        FALSE,           "IE00B9346255", 500,                 NA_character_, NA_character_, NA_character_, NA_character_,          NA_character_,        NA_real_,          NA_real_,           NA_character_, NA_character_,  NA_character_,           NA_character_,           NA_character_,           NA_character_, NA_character_,  NA_character_, NA_character_,  NA_real_,                                NA_character_,    NA_character_, NA_character_,  NA_character_, NA_character_, NA_character_,  NA_character_,
      "XS2260147306", 100,           "USD",     "TestPortfolio", "Test",         "58",        NA_real_,          1,              100,        FALSE,           "IE00B9346255", 500,                 NA_character_, NA_character_, NA_character_, NA_character_,          NA_character_,        NA_real_,          NA_real_,           NA_character_, NA_character_,  NA_character_,           NA_character_,           NA_character_,           NA_character_, NA_character_,  NA_character_, NA_character_,  NA_real_,                                NA_character_,    NA_character_, NA_character_,  NA_character_, NA_character_, NA_character_,  NA_character_,
      "XS2264058442", 100,           "USD",     "TestPortfolio", "Test",         "58",        NA_real_,          1,              100,        FALSE,           "IE00B9346255", 500,                 NA_character_, NA_character_, NA_character_, NA_character_,          NA_character_,        NA_real_,          NA_real_,           NA_character_, NA_character_,  NA_character_,           NA_character_,           NA_character_,           NA_character_, NA_character_,  NA_character_, NA_character_,  NA_real_,                                NA_character_,    NA_character_, NA_character_,  NA_character_, NA_character_, NA_character_,  NA_character_,
      "XS2275622269", 100,           "USD",     "TestPortfolio", "Test",         "58",        NA_real_,          1,              100,        FALSE,           "IE00B9346255", 500,                 NA_character_, NA_character_, NA_character_, NA_character_,          NA_character_,        NA_real_,          NA_real_,           NA_character_, NA_character_,  NA_character_,           NA_character_,           NA_character_,           NA_character_, NA_character_,  NA_character_, NA_character_,  NA_real_,                                NA_character_,    NA_character_, NA_character_,  NA_character_, NA_character_, NA_character_,  NA_character_,
      "XS2266971444", 100,           "USD",     "TestPortfolio", "Test",         "58",        NA_real_,          1,              100,        FALSE,           "IE00B9346255", 500,                 NA_character_, NA_character_, NA_character_, NA_character_,          NA_character_,        NA_real_,          NA_real_,           NA_character_, NA_character_,  NA_character_,           NA_character_,           NA_character_,           NA_character_, NA_character_,  NA_character_, NA_character_,  NA_real_,                                NA_character_,    NA_character_, NA_character_,  NA_character_, NA_character_, NA_character_,  NA_character_
    )
  cols_of_funds <- c("direct_holding", "fund_isin", "original_value_usd")

  result <- add_fund_portfolio(portfolio, fund_portfolio, cols_of_funds)
  expect_s3_class(result, "data.frame")
  expect_equal(nrow(result), nrow(fund_portfolio) + 1L)
  expect_equal(sum(result$value_usd), sum(portfolio$value_usd))
})
2DegreesInvesting/PACTA_analysis documentation built on April 19, 2023, 6:42 p.m.