Skip to content

Opaque types, named constants, QeResult in Nbp.scala#99

Merged
speedcom merged 2 commits intomainfrom
refactor/nbp-quality
Mar 10, 2026
Merged

Opaque types, named constants, QeResult in Nbp.scala#99
speedcom merged 2 commits intomainfrom
refactor/nbp-quality

Conversation

@speedcom
Copy link
Contributor

@speedcom speedcom commented Mar 10, 2026

Summary

  • State: removed 5 defaults — all 6 fields explicit
  • QeResult named type replaces (State, Double) tuple from executeQe
  • updateRate: prevRate/inflationRate, returns Rate
  • bondYield: refRateRate, nfaPLN, returns Rate, removed default on credibilityPremium
  • shouldActivateQe/shouldTaperQe: params → Rate
  • executeQe: bankBondHoldings/annualGdpPLN, returns QeResult
  • 7 named constants extracted (OutputGapCap, DebtThreshold, FiscalRiskCap, QeCompressionCoeff, ForeignDemandDiscount, QeActivationSlack, QeDeflationThreshold)

Pure refactoring, no behavioral changes.

Test plan

  • sbt test — 1245 tests pass
  • Zero var, zero field defaults in Nbp.scala

- State: remove 5 defaults, all 6 fields explicit
- QeResult named type replaces (State, Double) tuple from executeQe
- updateRate: prevRate/inflation → Rate, returns Rate
- bondYield: refRate → Rate, nfa → PLN, returns Rate, no default
  on credibilityPremium
- shouldActivateQe/shouldTaperQe: params → Rate
- executeQe: bankBondHoldings/annualGdp → PLN, returns QeResult
- 7 named constants extracted (OutputGapCap, DebtThreshold,
  FiscalRiskCap, QeCompressionCoeff, ForeignDemandDiscount,
  QeActivationSlack, QeDeflationThreshold)
Eliminates duplicated smoothing/clamping logic between symmetric
and asymmetric Taylor branches. Each function is < 15 lines and
independently testable.
@speedcom speedcom merged commit bc56130 into main Mar 10, 2026
2 checks passed
@speedcom speedcom deleted the refactor/nbp-quality branch March 10, 2026 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant