Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build a component that ingests a dataset (CSV/JSON or in-memory records) and answers questions with the Stream API: filter/map/reduce, grouping (Collectors.groupingBy), and summarizing. Use generics for a reusable piece, Optional to model maybe-absent results (no unguarded get()), and proper exception handling at the boundary. Cover it with JUnit 5 tests, including @ParameterizedTest cases.
Correct, readable map/filter/reduce/collect (incl. groupingBy); streams not misused (no side effects, not reused).
A genuinely reusable generic piece (bounds/wildcards where apt); Optional models absence safely.
JUnit 5 tests with @ParameterizedTest; happy path and edge cases covered; assertThrows where relevant.
Boundary errors handled (bad/missing data) without leaking exceptions or corrupting results.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A stream-based data processor with generics ## Goal Build a component that ingests a dataset (CSV/JSON or in-memory records) and answers questions with the Stream API: filter/map/reduce, grouping (Collectors.groupingBy), and summarizing. Use generics for a reusable piece, Optional to model maybe-absent results (no unguarded get()), and proper exception handling at the boundary. Cover it with JUnit 5 tests, including @ParameterizedTest cases. ## Acceptance criteria - [ ] Stream pipelines: Correct, readable map/filter/reduce/collect (incl. groupingBy); streams not misused (no side effects, not reused). - [ ] Generics & Optional: A genuinely reusable generic piece (bounds/wildcards where apt); Optional models absence safely. - [ ] Tests: JUnit 5 tests with @ParameterizedTest; happy path and edge cases covered; assertThrows where relevant. - [ ] Robustness: Boundary errors handled (bad/missing data) without leaking exceptions or corrupting results. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.