Fixing ModelLoaderUtils.split() to pass tests #126009
Merged
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
The primary changes are to the split() method's functionality. A new variable,
numberOfRanges
is created to ensure the return list has the correct length. The variablesbaseChunksPerRange
andremainder
are now calculated differently to fit the new code structure.The new code structure completes all but the final range in a single for loop and removes the need for an if statement that adds the second to last range in some cases.
Changes are also made to the method Javadoc to accurately state what the method does.
A good way to test this change is to run:
./gradlew ":x-pack:plugin:ml-package-loader:test" --tests "org.elasticsearch.xpack.ml.packageloader.action.ModelLoaderUtilsTests.testSplitIntoRanges" -Dtests.iters=100000
This test will fail on main, but passes on this PR.
Closes #121799