test_namegen.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from __future__ import annotations
  2. import unittest
  3. from mypyc.namegen import (
  4. NameGenerator,
  5. candidate_suffixes,
  6. exported_name,
  7. make_module_translation_map,
  8. )
  9. class TestNameGen(unittest.TestCase):
  10. def test_candidate_suffixes(self) -> None:
  11. assert candidate_suffixes("foo") == ["", "foo."]
  12. assert candidate_suffixes("foo.bar") == ["", "bar.", "foo.bar."]
  13. def test_exported_name(self) -> None:
  14. assert exported_name("foo") == "foo"
  15. assert exported_name("foo.bar") == "foo___bar"
  16. def test_make_module_translation_map(self) -> None:
  17. assert make_module_translation_map(["foo", "bar"]) == {"foo": "foo.", "bar": "bar."}
  18. assert make_module_translation_map(["foo.bar", "foo.baz"]) == {
  19. "foo.bar": "bar.",
  20. "foo.baz": "baz.",
  21. }
  22. assert make_module_translation_map(["zar", "foo.bar", "foo.baz"]) == {
  23. "foo.bar": "bar.",
  24. "foo.baz": "baz.",
  25. "zar": "zar.",
  26. }
  27. assert make_module_translation_map(["foo.bar", "fu.bar", "foo.baz"]) == {
  28. "foo.bar": "foo.bar.",
  29. "fu.bar": "fu.bar.",
  30. "foo.baz": "baz.",
  31. }
  32. def test_name_generator(self) -> None:
  33. g = NameGenerator([["foo", "foo.zar"]])
  34. assert g.private_name("foo", "f") == "foo___f"
  35. assert g.private_name("foo", "C.x.y") == "foo___C___x___y"
  36. assert g.private_name("foo", "C.x.y") == "foo___C___x___y"
  37. assert g.private_name("foo.zar", "C.x.y") == "zar___C___x___y"
  38. assert g.private_name("foo", "C.x_y") == "foo___C___x_y"
  39. assert g.private_name("foo", "C_x_y") == "foo___C_x_y"
  40. assert g.private_name("foo", "C_x_y") == "foo___C_x_y"
  41. assert g.private_name("foo", "___") == "foo______3_"