test_tuplename.py 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. from __future__ import annotations
  2. import unittest
  3. from mypyc.ir.class_ir import ClassIR
  4. from mypyc.ir.rtypes import (
  5. RInstance,
  6. RTuple,
  7. RUnion,
  8. bool_rprimitive,
  9. int_rprimitive,
  10. list_rprimitive,
  11. object_rprimitive,
  12. )
  13. class TestTupleNames(unittest.TestCase):
  14. def setUp(self) -> None:
  15. self.inst_a = RInstance(ClassIR("A", "__main__"))
  16. self.inst_b = RInstance(ClassIR("B", "__main__"))
  17. def test_names(self) -> None:
  18. assert RTuple([int_rprimitive, int_rprimitive]).unique_id == "T2II"
  19. assert RTuple([list_rprimitive, object_rprimitive, self.inst_a]).unique_id == "T3OOO"
  20. assert RTuple([list_rprimitive, object_rprimitive, self.inst_b]).unique_id == "T3OOO"
  21. assert RTuple([]).unique_id == "T0"
  22. assert (
  23. RTuple([RTuple([]), RTuple([int_rprimitive, int_rprimitive])]).unique_id == "T2T0T2II"
  24. )
  25. assert (
  26. RTuple([bool_rprimitive, RUnion([bool_rprimitive, int_rprimitive])]).unique_id
  27. == "T2CO"
  28. )