"""Q&A 反向补全单元测试。"""

from __future__ import annotations

from app.tree.repair.supplement import SupplementStats, deduplicate_field


class TestDeduplicateField:
    def test_removes_duplicates(self):
        result = deduplicate_field(["Hello", "hello", "World", "HELLO"])
        assert result == ["Hello", "World"]

    def test_preserves_order(self):
        result = deduplicate_field(["B", "A", "b", "C"])
        assert result == ["B", "A", "C"]

    def test_strips_whitespace(self):
        result = deduplicate_field(["  hello  ", "hello"])
        assert len(result) == 1

    def test_empty_list(self):
        assert deduplicate_field([]) == []

    def test_skips_empty_strings(self):
        result = deduplicate_field(["", "hello", "", "world"])
        assert result == ["hello", "world"]


class TestSupplementStats:
    def test_defaults(self):
        stats = SupplementStats()
        assert stats.questions_analyzed == 0
        assert stats.facts_injected == 0
        assert stats.facts_skipped == 0
