from __future__ import annotations

from tests.pipeline_setup.suite_02_pipeline.pipeline_intent_rag.helpers.answer_quality import AnswerQualityController


def test_quality_controller_removes_meta_and_empty_candidate_sections() -> None:
    controller = AnswerQualityController()

    answer = (
        "В файле видны импорты из различных подпакетов. "
        "Ответ основан исключительно на содержимом указанного файла. "
        "Кандидаты на health-endpoint: - Нет явных неподтвержденных кандидатов."
    )

    cleaned = controller.refine(answer, sub_intent="FIND_ENTRYPOINTS")

    assert "различных подпакетов" not in cleaned
    assert "Ответ основан исключительно" not in cleaned
    assert "Нет явных неподтвержденных кандидатов" not in cleaned


def test_quality_controller_trims_speculation_after_not_found() -> None:
    controller = AnswerQualityController()

    answer = (
        "Сущность RuntimeFactoryManager не найдена в доступном коде. "
        "Исходя из названия, вероятно этот класс управляет фабриками runtime."
    )

    cleaned = controller.refine(answer, sub_intent="EXPLAIN")

    assert cleaned == "Сущность RuntimeFactoryManager не найдена в доступном коде."
