kadyrbekovhamit-cyber opened a new pull request, #6409:
URL: https://github.com/apache/fineract/pull/6409

   ## Description
   
   For `pmt(0.01, 12, 1000, 0, false)`, `FinanicalFunctions.nop()` currently 
returns 7 instead of 12. Replace its non-zero-rate expression with the 
algebraic inverse of `pmt()` and document rounding to the nearest whole 
payment, including the zero-rate branch.
   
   https://issues.apache.org/jira/browse/FINERACT-2809
   
   The inverse supports both payment timings and a non-zero future value. The 
three regression tests cover those cases and zero interest. A separate 33-case 
round-trip harness passes 33/33 with the correction, versus 8/33 on the 
original source.
   
   Validation on develop `e4474a0f4a4c65a75e7758e47db1fd277e5fcfef`, JDK 25:
   
   ```sh
   ./gradlew :fineract-loan:test --tests '*FinanicalFunctionsTest' \
     :fineract-loan:spotlessCheck \
     :fineract-loan:checkstyleMain :fineract-loan:checkstyleTest
   ```
   
   No production call site for `nop()` was found in the checked Java sources. 
This is a helper correctness fix; no production loan impact is claimed.
   
   Research and proposed correction: Xamit Kadirbekov / GERO Research, 
following the discussion with Adam Saghy on the developer mailing list.
   
   ## Checklist
   
   - [x] Use the FINERACT issue key and the same title for the commit and PR.
   - [x] Add regression tests and follow the coding conventions.
   - [x] Keep the change focused and reviewable.
   - [x] Acknowledge responsibility for addressing PR CI failures before 
requesting merge.
   - [ ] Review the upstream CI results when available.
   
   There are no REST API changes. Full integration CI has not been run locally.
   


-- 
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