RohanExploit/Meta-hackathon
0
1import sys2sys.path.insert(0, '.')3 4from environment.retail_env import MultiChannelRetailEnv5from environment.models import RetailAction, ActionType, OrderAction6import json7 8def test_environment():9 print("Testing Retail Inventory Environment...")10 11 # Create environment12 env = MultiChannelRetailEnv(seed=42)13 14 # Define a simple task configuration15 task_config = {16 "products": ["Widget"],17 "initial_inventory": {"Widget": 10},18 "initial_cash": 100.0,19 "base_demand_luxury": {"Widget": 1.0},20 "base_demand_budget": {"Widget": 2.0},21 "product_costs": {"Widget": 5.0},22 "holding_costs": {"Widget": 0.1},23 "max_inventory": {"Widget": 100},24 "initial_prices_luxury": {"Widget": 10.0},25 "initial_prices_budget": {"Widget": 7.0},26 "price_bounds": {"Widget": {"min": 5.5, "max": 15.0}},27 }28 29 # Reset environment30 obs = env.reset(task_config)31 print(f"Initial observation: {obs}")32 33 # Test a few steps34 for i in range(3):35 print(f"\n--- Step {i+1} ---")36 37 # Create a simple action: order 2 widgets38 action = OrderAction(39 action=ActionType.ORDER,40 product="Widget",41 quantity=242 )43 44 # Take step45 obs, reward, done, info = env.step(action)46 print(f"Action: {action}")47 print(f"Observation: {obs}")48 print(f"Reward: {reward}")49 print(f"Done: {done}")50 print(f"Info: {info}")51 52 if done:53 print("Episode finished!")54 break55 56 # Test state method57 state = env.get_state()58 print(f"\nFull state: {state}")59 60 print("\nEnvironment test completed successfully!")61 62if __name__ == "__main__":63 test_environment()64 