public BigDecimal calculateProductGramsForRequiredFiller(Filler filler, BigDecimal fillerGrams) {
        if (filler == null || fillerGrams == null || fillerGrams.doubleValue() <= 0) {
            return BigDecimal.valueOf(0);
        }

        if (filler.equals(Filler.PROTEIN)) {
            return calculateProductGramsForRequiredProteins(fillerGrams).setScale(0, RoundingMode.HALF_DOWN);
        } else if (filler.equals(Filler.CARBOHYDRATE)) {
            return calculateProductGramsForRequiredCarbohydrates(fillerGrams).setScale(0, RoundingMode.HALF_DOWN);
        } else if (filler.equals(Filler.FAT)) {
            return calculateProductGramsForRequiredFats(fillerGrams).setScale(0, RoundingMode.HALF_DOWN);
        }
        return BigDecimal.valueOf(0);
    }
@Test
    void calculateProductGramsForRequiredFiller_negativeValue() {
        BigDecimal result = product.calculateProductGramsForRequiredFiller(Filler.CARBOHYDRATE, BigDecimal.valueOf(-999));
        assertEquals(BigDecimal.valueOf(0), result);
    }