### Question:
TurnoverAggregation { @Programmatic public LocalDateInterval calculationPeriod(){ return LocalDateInterval.including(getDate().minusMonths(23), getDate()); } TurnoverAggregation();  TurnoverAggregation(final TurnoverReportingConfig turnoverReportingConfig, final LocalDate date, final Currency currency); String title(); @Programmatic void remove(); @Programmatic LocalDateInterval calculationPeriod(); @Programmatic List<TurnoverAggregateForPeriod> aggregatesForPeriod(); @Programmatic List<PurchaseCountAggregateForPeriod> purchaseCountAggregatesForPeriod(); @Persistent(table="AggregationsTurnovers")
    @Join(column="aggregationId")
    @Element(column="turnoverId")
    @Getter
    @Setter
    public Set<Turnover> turnovers; }### Answer:
@Test public void calculationPeriod_works() { TurnoverAggregation aggregation = new TurnoverAggregation(); final LocalDate aggregationDate = new LocalDate(2020, 1, 1); aggregation.setDate(aggregationDate); Assertions.assertThat(aggregation.calculationPeriod().toString()).isEqualTo("2018-02-01/2020-01-02"); Assertions.assertThat(aggregation.calculationPeriod().endDate()).isEqualTo(aggregationDate); }