def test_expected_sales_zero_div_at_pid_0():
    pid = 0
    pl = PriceLogic(0, pid, 5*60, 10)

    code = "TEST"
    base_price = 10
    price_data = []
    products_left = 10

    try:
        pl.add_product(code, base_price, price_data, products_left)
    except ZeroDivisionError:
        assert False, "Lookback at period zero fails"
def test_expected_sales_zero_div_at_pid_0():
    pid = 0
    pl = PriceLogic(0, pid, 5 * 60, 10)

    code = "TEST"
    base_price = 10
    price_data = []
    products_left = 10

    try:
        pl.add_product(code, base_price, price_data, products_left)
    except ZeroDivisionError:
        assert False, "Lookback at period zero fails"
Exemplo n.º 3
0
    def tick(self):
        # database transaction
        with self.db.conn:
            surplus = self.BUDGET + self.db.stock_account()
            period_count = self.db.prices_count()
            period_id = period_count - 1
            periods_left = self.TOTAL_PERIOD_COUNT - period_count

            pl = PriceLogic(
                current_surplus=surplus,
                period_id=period_id,
                period_duration=self.PERIOD_DURATION,
                periods_left=periods_left
            )

            base_prices = self.db.base_prices()
            stock_left = self.db.stock_left()
            price_adjustments = self.db.price_adjustments()
            breweries = self.db.breweries()
            types = self.db.types()

            for key in base_prices:
                # update params
                params = None
                if key in product_parameters:
                    params = Params(params=product_parameters[key])
                # add product
                pl.add_product(
                    code=key,
                    brewery=breweries[key],
                    base_price=base_prices[key],
                    products_left=stock_left[key],
                    prod_type=types[key],
                    price_data=price_adjustments[key],
                    params=params
                )

            new_adjustments = pl.finalize()
            for key in new_adjustments:
                new_adjustments[key] = new_adjustments[key]
            self.db.insert_prices(new_adjustments)