"""Shared fixtures for utilities tests."""

import pytest


@pytest.fixture
def sample_search_results():
    """Sample search results with standard format."""
    return [
        {
            "title": "First Article",
            "link": "https://example.com/article1",
            "index": "1",
        },
        {
            "title": "Second Article",
            "link": "https://example.org/article2",
            "index": "2",
        },
        {
            "title": "Third Article",
            "link": "https://test.com/article3",
            "index": "3",
        },
    ]


@pytest.fixture
def sample_search_results_with_duplicates():
    """Search results with duplicate URLs."""
    return [
        {
            "title": "First Article",
            "link": "https://example.com/article1",
            "index": "1",
        },
        {
            "title": "Second Article",
            "link": "https://example.com/article1",  # Duplicate URL
            "index": "2",
        },
        {
            "title": "Third Article",
            "link": "https://test.com/article3",
            "index": "3",
        },
    ]


@pytest.fixture
def sample_findings():
    """Sample findings list for format_findings tests."""
    return [
        {
            "phase": "Initial Search",
            "content": "This is the initial search content.",
            "search_results": [
                {
                    "title": "Source 1",
                    "link": "https://source1.com",
                    "index": "1",
                }
            ],
        },
        {
            "phase": "Follow-up Iteration 1.1",
            "content": "Follow-up content for iteration 1.",
            "search_results": [
                {
                    "title": "Source 2",
                    "link": "https://source2.com",
                    "index": "2",
                }
            ],
        },
    ]


@pytest.fixture
def sample_questions_by_iteration():
    """Sample questions organized by iteration."""
    return {
        1: ["What is the main topic?", "Who are the key players?"],
        2: ["What are the implications?", "What is the timeline?"],
    }


@pytest.fixture
def sample_findings_with_subquery():
    """Findings with Sub-query phases (IterDRAG strategy)."""
    return [
        {
            "phase": "Sub-query 1",
            "content": "Content for sub-query 1.",
            "search_results": [],
        },
        {
            "phase": "Sub-query 2",
            "content": "Content for sub-query 2.",
            "search_results": [],
        },
    ]


@pytest.fixture
def subquery_questions():
    """Questions for Sub-query phases (stored in iteration 0)."""
    return {
        0: ["What is X?", "How does Y work?", "Why is Z important?"],
    }
