KRYSTALM7 opened a new pull request, #35:
URL: https://github.com/apache/fineract-loan-origination/pull/35

   ## Description
   
   Adds comprehensive unit test coverage for the credit scoring factors and 
weights configuration introduced in #29.
   
   ### Tests Added
   
   - **ScoringWeightsPropertiesTest** — startup validation logic, default 
weight values, custom weight combinations summing to 100, default threshold 
values.
   - **IncomeLoanRatioFactorTest** — ratio tiers, zero/negative/null 
denominator guards (no ArithmeticException), custom threshold overrides, very 
small non-zero income fractions, points never exceed maxPoints.
   - **DebtBurdenFactorTest** — ratio tiers, zero/negative/null income guards, 
null obligations treated as best case, rounding precision with small configured 
maxPoints, custom threshold overrides.
   - **EmploymentStabilityFactorTest** — status/duration tier combinations, 
null/blank status and duration handling, case-insensitive status matching.
   - **RepaymentHistoryFactorTest** — first-time borrower midpoint scoring, 
ratio tiers, negative count handling, rounding precision with small maxPoints.
   - **LoanPurposeRiskFactorTest** — all purpose risk categories, 
null/blank/unrecognised purpose handling, case-insensitive matching.
   
   ### Coverage Focus
   
   Tests specifically target the edge cases raised in review on #29 — 
division-by-zero guards, BigDecimal rounding precision, and configurable 
threshold behavior — to verify those fixes hold under a range of inputs, not 
just the happy path.
   
   All tests are pure unit tests with no Spring context and no database; each 
factor is instantiated directly with a `ScoringWeightsProperties` instance, so 
the full suite runs in milliseconds.
   
   ---
   
   Please make sure these boxes are checked before submitting your pull request 
- thanks!
    
   - [x] Write the commit message as per [our 
guidelines](https://github.com/apache/fineract/blob/develop/CONTRIBUTING.md#pull-requests)
   - [x] Acknowledge that we will not review PRs that are not passing the build 
("green") - it is your responsibility to get a proposed PR to pass the build, 
not primarily the project's maintainers.
   - [x] Create/update [unit or integration 
tests](https://fineract.apache.org/docs/current/#_testing) for verifying the 
changes made.
   - [x] Follow our [coding 
conventions](https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions).
   - [ ] Add required Swagger annotation and update API documentation at 
fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with 
details of any API changes (Not Applicable)
   - [x] [This PR must not be a "code 
dump"](https://cwiki.apache.org/confluence/display/FINERACT/Pull+Request+Size+Limit).
 Large changes can be made in a branch, with assistance.
   Ask for help on the [developer mailing 
list](https://fineract.apache.org/#contribute).
    
   Your assigned reviewer(s) will follow our [guidelines for code 
reviews](https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide).
    
   ### Related
    
   - JIRA: https://issues.apache.org/jira/browse/FINERACT-2442
   - Tests cover factors merged in #29


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to