Captured from a real `junit-platform-console-standalone --details=tree` run against
ConvertWithTest, compiled and executed for real.

╷
├─ JUnit Platform Suite ✔
├─ JUnit Jupiter ✔
│  └─ ConvertWithTest ✔
│     └─ testDatesAreIn2023(LocalDate) ✔
│        ├─ date "2023-01-01" should be in 2023 ✔
│        ├─ date "2023-06-15" should be in 2023 ✔
│        └─ date "2023-12-31" should be in 2023 ✔
└─ JUnit Vintage ✔

Test run finished after 146 ms
[         3 tests successful      ]
[         0 tests failed          ]

The @ValueSource arguments are plain ISO-format date strings; @ConvertWith(DashDateConverter.class)
is what turns each one into a real java.time.LocalDate before the test method ever sees it, via
DashDateConverter's own SimpleArgumentConverter.convert() override. JUnit actually has an
implicit String-to-LocalDate conversion for this exact ISO shape, so this particular example
would work without @ConvertWith too -- it's shown here because the same mechanism is what you
reach for once the source strings need a format or extra validation JUnit's implicit converters
don't cover, and DashDateConverter.java is the smallest possible shape to build that converter
in when the need arises.
