Validation of solver configuration is currently embedded in CoreSolver methods, but belongs in RunConfig/RunPlan dataclasses using __post_init__.
Problem
CoreSolver performs input validation that should happen at configuration time, not at solve time. This makes the solver harder to test and blurs responsibility boundaries.
Scope
- Move validation at L840 and L855 of
core_solver.py into RunConfig/RunPlan.__post_init__
- Ensure errors are raised at config construction time with clear messages
- Update tests accordingly
Related
Ref: PR #18 review by @TimothyWillard (L840, L855)
Validation of solver configuration is currently embedded in
CoreSolvermethods, but belongs inRunConfig/RunPlandataclasses using__post_init__.Problem
CoreSolver performs input validation that should happen at configuration time, not at solve time. This makes the solver harder to test and blurs responsibility boundaries.
Scope
core_solver.pyintoRunConfig/RunPlan.__post_init__Related
Ref: PR #18 review by @TimothyWillard (L840, L855)