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"
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)