"""Tests for Moving Average strategy.""" import pytest import pandas as pd from src.strategies.technical.moving_avg_strategy import MovingAverageStrategy class TestMovingAverageStrategy: """Tests for MovingAverageStrategy.""" @pytest.fixture def strategy(self): """Create Moving Average strategy instance.""" return MovingAverageStrategy( strategy_id=1, name="test_ma", symbol="BTC/USD", timeframe="1h", parameters={ "short_period": 10, "long_period": 30, "ma_type": "SMA" } ) @pytest.mark.asyncio async def test_ma_strategy_initialization(self, strategy): """Test Moving Average strategy initialization.""" assert strategy.short_period == 10 assert strategy.long_period == 30 assert strategy.ma_type == "SMA" @pytest.mark.asyncio async def test_generate_signal(self, strategy): """Test signal generation.""" # Create data with trend data = pd.DataFrame({ 'close': [100 + i * 0.5 for i in range(50)] }) strategy.current_data = data signal = await strategy.generate_signal() assert "signal" in signal assert signal["signal"] in ["buy", "sell", "hold"]