Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.7.0 #71

Closed
wants to merge 13 commits into from
Closed

Release 0.7.0 #71

wants to merge 13 commits into from

Conversation

tginsberg
Copy link
Owner

  • Use greedy integrators where possible (Fixes Wouldn't applying an Integrator.ofGreedy not make sense? #57)
  • Add JSpecify annotations for static analysis
  • Implement orderByFrequencyAscending() and orderByFrequencyDescending()
  • Implement movingProduct() and movingProductBy()
  • Implement movingSum() and movingSumBy()
  • Remove maxBy(fn) and minBy(fn), can be done with JDK methods trivially
  • Rename exactSize() to sizeExactly()
  • Implement sizeLessThan, sizeLessThanOrEqualTo, sizeGreaterThan, and sizeGreaterThanOrEqualTo
  • API Style - Functions, when used as arguments, should come last for consistency and to play nice with Kotlin (Fixes Reorder function arguments #64)

+ Greedy integrators can be used anywhere the integrator does not itself initiate a short circuit (returns false). Passing along the downstream rejecting flag is allowed for greedy integrators.
+ Implement JSpecify nullability annotations
+ Add ErrorProne and NullAway to build for compile-time checks
+ Add more tests to `MinMaxGatherer` as highlighted by coverage report
+ Nullability annotations in Gatherers4j.java
+ Minimum windowSize is 1 in a lot of places, not zero.
+ Add constructor to GroupingByGatherer and handle null mapping function to make nullability checks happier
+ Parameterize tests where multiple independent assertions were taking place
+ More Kotlin friendly, if people end up using this from Kotlin instead of extension functions on Stream
+ More consistent, easier for me to remember the order
+ Rename `exactSize(n)` to `sizeExactly(n)`
+ Add `sizeGreaterThan(n)`
+ Add `sizeGreaterThanOrEqualTo(n)`
+ Add `sizeLessThan(n)`
+ Add `sizeLessThanOrEqualTo(n)`
* Use default implementation of checkFinalLength when tryAccept will fail-fast.

* Eliminate warning
Copy link

github-actions bot commented Jan 6, 2025

Overall Project 98.87% -0.69% 🍏
Files changed 98.27% 🍏

File Coverage
ZipWithGatherer.java 100% 🍏
BigDecimalMovingProductGatherer.java 100% 🍏
BigDecimalSimpleMovingAverageGatherer.java 100% 🍏
IndexingGatherer.java 100% 🍏
Pair.java 100% 🍏
WithCount.java 100% 🍏
WithOriginal.java 100% 🍏
BigDecimalSimpleAverageGatherer.java 100% 🍏
BigDecimalSumGatherer.java 100% 🍏
WithOriginalGatherer.java 100% 🍏
BigDecimalProductGatherer.java 100% 🍏
BigDecimalMovingSumGatherer.java 100% 🍏
IndexedValue.java 100% 🍏
BigDecimalStandardDeviationGatherer.java 100% 🍏
ThrottlingGatherer.java 99.39% 🍏
FrequencyGatherer.java 99.22% -0.78% 🍏
InterleavingGatherer.java 99.17% 🍏
GroupingByGatherer.java 99.04% 🍏
Gatherers4j.java 98.74% -1.26% 🍏
ShufflingGatherer.java 98.67% -1.33% 🍏
BigDecimalGatherer.java 98.63% 🍏
LastGatherer.java 98.53% -1.47% 🍏
DropLastGatherer.java 98.44% 🍏
DedupeConsecutiveGatherer.java 98.25% 🍏
ReversingGatherer.java 98.04% -1.96% 🍏
ZipWithNextGatherer.java 97.67% 🍏
DistinctGatherer.java 97.62% 🍏
FilteringWithIndexGatherer.java 97.62% 🍏
SizeGatherer.java 96.52% -2.99% 🍏
GathererUtils.java 88.89% -11.11%

Copy link

github-actions bot commented Jan 6, 2025

Overall Project 98.87% -0.69% 🍏
Files changed 98.27% 🍏

File Coverage
ZipWithGatherer.java 100% 🍏
BigDecimalMovingProductGatherer.java 100% 🍏
BigDecimalSimpleMovingAverageGatherer.java 100% 🍏
IndexingGatherer.java 100% 🍏
Pair.java 100% 🍏
WithCount.java 100% 🍏
WithOriginal.java 100% 🍏
BigDecimalSimpleAverageGatherer.java 100% 🍏
BigDecimalSumGatherer.java 100% 🍏
WithOriginalGatherer.java 100% 🍏
BigDecimalProductGatherer.java 100% 🍏
BigDecimalMovingSumGatherer.java 100% 🍏
IndexedValue.java 100% 🍏
BigDecimalStandardDeviationGatherer.java 100% 🍏
ThrottlingGatherer.java 99.39% 🍏
FrequencyGatherer.java 99.22% -0.78% 🍏
InterleavingGatherer.java 99.17% 🍏
GroupingByGatherer.java 99.04% 🍏
Gatherers4j.java 98.74% -1.26% 🍏
ShufflingGatherer.java 98.67% -1.33% 🍏
BigDecimalGatherer.java 98.63% 🍏
LastGatherer.java 98.53% -1.47% 🍏
DropLastGatherer.java 98.44% 🍏
DedupeConsecutiveGatherer.java 98.25% 🍏
ReversingGatherer.java 98.04% -1.96% 🍏
ZipWithNextGatherer.java 97.67% 🍏
DistinctGatherer.java 97.62% 🍏
FilteringWithIndexGatherer.java 97.62% 🍏
SizeGatherer.java 96.52% -2.99% 🍏
GathererUtils.java 88.89% -11.11%

@tginsberg tginsberg closed this Jan 6, 2025
@tginsberg tginsberg deleted the relese/0.7.0 branch January 9, 2025 13:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Reorder function arguments Wouldn't applying an Integrator.ofGreedy not make sense?
1 participant