Week 5 - Unit Testing, OjAlgo Integration, and Code Cleanup
In the past week, my primary goal was enhancing the test infrastructure, finishing the integration of the second solver, OjAlgo, and maintaining overall code quality and clarity.
Progress:
-
Unit Tests for CommonsMathSolver
-
Implemented unit tests covering maximization, minimization, variable bounds, equality constraints, unsolvable and unbounded LP scenarios, and precision checks.
-
Standardized test logic and provided clear comments aligned with Commons Math documentation and architecture.
-
-
Test Environment Stabilization
-
Fully synchronized Maven and IntelliJ configurations, eliminating issues with dependencies (JUnit, etc.) and resolving
ClassNotFoundExceptionpermanently. -
Cleaned up the project structure by separating test and main code, removing obsolete files, and ignoring IDE-specific files (
.idea,.iml) from version control.
-
-
Development of Second Solver Adapter (
OjAlgoSolver)-
Created a new adapter implementation to the
ILPSolverinterface. -
Started developing standardized tests identical to those used for CommonsMathSolver, enabling direct comparability between both solver adapters.
-
- Branch Management
- Kept the repository organized by consistently using feature branches for new code and fixes. Additionally, I resolved some smaller Git issues to keep the commit history clear.
-
Improved Documentation and JavaDocs
-
Every interface and implementation, especially the solver adapters, now have JavaDocs.
-
Marked test sources, including comments indicating when tests were adapted from upstream repositories.
-
Next Steps:
-
Add further tests to the OjAlgoSolver by upstream test archives.
-
Expand the project README and continue building documentation.
-
Finalize the pull request for CommonsMathSolver, complete with tests, and request mentor reviews.
-
Gather mentor feedback regarding API design, test coverage, and error-handling strategies.
Ask mentors for advice on which special test cases from the archives would be most valuable to integrate.
Begin integration of additional solvers (GLPK, CBC, and SCIP).
That's it for this week, see you next week!
Project Details:
-
GitHub Repository: OptSolvX GitHub
-
Weekly Meeting: Every Monday at 11:00 AM (Berlin time)
-
Original Project Idea (NRNB Issue): Google Summer of Code Issue #259
Kommentare
Kommentar veröffentlichen