# Rehearsal workspace — refactoring task You are refactoring `src/main/java/codingdojo/LongRangeForecasts.java` in this Maven project. Run `mvn -q test` after each change (mvn is on your PATH). It may fail — that is expected: the dependency on `Scorer` makes the method untestable — but the code must still *compile*. ## Goal In `LongRangeForecasts.longRangeForecast()`, the loop over `interestingDates` collects weather by calling `scorer` (an unwanted external dependency). 1. Introduce a lambda for the scorer-dependent code and move its definition to the top of the method, leaving the invocation where it is. (No refactoring tool supports this — do it as a minimal manual edit.) 2. Extract the weather-collection loop into a new method `collectExpectedWeather` that takes the lambda as a parameter (suggested type `LongFunction`). 3. Add the lambda as a parameter to `longRangeForecast` itself: the signature must become `longRangeForecast(LongFunction dayOffsetToWeather)`, with a public no-arg overload `longRangeForecast()` that delegates and wraps the `scorer` field in a lambda. Do not keep the `String quarter` parameter. (`java-refactor change-method-signature` or `java-refactor introduce-param` may help; fall back to a minimal manual edit if no subcommand can do it.) 4. Stop. Report the final diff. ## Tool rules (variant B) You may change code with your normal file-editing tools.