import json
import unittest

from translator_service import (
    _MobileTranslationParser,
    _confidence_from_data,
    _flag,
)


class CoreParserTests(unittest.TestCase):
    def test_flag(self):
        self.assertEqual(_flag("MG"), "🇲🇬")
        self.assertEqual(_flag("FR"), "🇫🇷")

    def test_mobile_parser_t0(self):
        parser = _MobileTranslationParser()
        parser.feed(
            '<html><div class="t0">je suis <b>seul</b> à la maison</div></html>'
        )
        self.assertEqual(
            parser.result(),
            "je suis seul à la maison",
        )

    def test_mobile_parser_result_container(self):
        parser = _MobileTranslationParser()
        parser.feed(
            '<div class="result-container">bonjour</div>'
        )
        self.assertEqual(parser.result(), "bonjour")

    def test_confidence_googletrans_shape(self):
        data = [None] * 9
        data[8] = [["mg"], None, [1.0], None]
        # Parser is defensive; exact upstream shape can change.
        value = _confidence_from_data(data)
        self.assertTrue(value is None or 0.0 <= value <= 1.0)


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