"""Tests for deterministic language detection."""

import sys
import tempfile
import unittest
from pathlib import Path

SCRIPTS = Path(__file__).parents[1] / "scripts"
sys.path.insert(0, str(SCRIPTS))

from language_detector import detect_language


class LanguageDetectorTest(unittest.TestCase):
    """Verify language routing and ambiguity fallback."""

    def test_detects_go_marker(self):
        """A Go module routes to Go."""
        with tempfile.TemporaryDirectory() as directory:
            repo = Path(directory)
            (repo / "go.mod").write_text("module example\n", encoding="utf-8")
            self.assertEqual("go", detect_language(repo)["language"])

    def test_tie_falls_back_to_universal(self):
        """Equal language evidence uses universal."""
        with tempfile.TemporaryDirectory() as directory:
            repo = Path(directory)
            (repo / "a.go").write_text("", encoding="utf-8")
            (repo / "a.py").write_text("", encoding="utf-8")
            self.assertEqual("universal", detect_language(repo)["language"])


if __name__ == "__main__":
    unittest.main()
