@Test
public void testBuildQuotaTrackers() {

    testBuildQuotaTrackers(
            scheduleJob(
                    newBatchJob(10, budget(percentageOfHealthyPolicy(80.0), hourlyRatePercentage(5), Collections.emptyList())),
                    10
            ),
            SelfJobDisruptionBudgetResolver.getInstance(),
            UnhealthyTasksLimitTracker.class
    );
    testBuildQuotaTrackers(
            scheduleJob(
                    newBatchJob(10, budget(percentageOfHealthyPolicy(80.0), hourlyRatePercentage(5), singletonList(officeHourTimeWindow()))),
                    10
            ),
            SelfJobDisruptionBudgetResolver.getInstance(),
            UnhealthyTasksLimitTracker.class, TimeWindowQuotaTracker.class
    );
    testBuildQuotaTrackers(
            scheduleJob(
                    newBatchJob(10, budget(numberOfHealthyPolicy(2), hourlyRatePercentage(5), singletonList(officeHourTimeWindow()))),
                    10
            ),
            SelfJobDisruptionBudgetResolver.getInstance(),
            UnhealthyTasksLimitTracker.class, TimeWindowQuotaTracker.class
    );
    testBuildQuotaTrackers(
            scheduleJob(
                    newBatchJob(10, budget(selfManagedPolicy(10_000), unlimitedRate(), Collections.emptyList())),
                    10
            ),
            job -> budget(perTaskRelocationLimitPolicy(100), hourlyRatePercentage(5), singletonList(officeHourTimeWindow())),
            TimeWindowQuotaTracker.class
    );
}