34 lines
1 KiB
Python
34 lines
1 KiB
Python
|
from __future__ import annotations
|
||
|
|
||
|
import unittest
|
||
|
|
||
|
from mypyc.ir.class_ir import ClassIR
|
||
|
from mypyc.ir.rtypes import (
|
||
|
RInstance,
|
||
|
RTuple,
|
||
|
RUnion,
|
||
|
bool_rprimitive,
|
||
|
int_rprimitive,
|
||
|
list_rprimitive,
|
||
|
object_rprimitive,
|
||
|
)
|
||
|
|
||
|
|
||
|
class TestTupleNames(unittest.TestCase):
|
||
|
def setUp(self) -> None:
|
||
|
self.inst_a = RInstance(ClassIR("A", "__main__"))
|
||
|
self.inst_b = RInstance(ClassIR("B", "__main__"))
|
||
|
|
||
|
def test_names(self) -> None:
|
||
|
assert RTuple([int_rprimitive, int_rprimitive]).unique_id == "T2II"
|
||
|
assert RTuple([list_rprimitive, object_rprimitive, self.inst_a]).unique_id == "T3OOO"
|
||
|
assert RTuple([list_rprimitive, object_rprimitive, self.inst_b]).unique_id == "T3OOO"
|
||
|
assert RTuple([]).unique_id == "T0"
|
||
|
assert (
|
||
|
RTuple([RTuple([]), RTuple([int_rprimitive, int_rprimitive])]).unique_id == "T2T0T2II"
|
||
|
)
|
||
|
assert (
|
||
|
RTuple([bool_rprimitive, RUnion([bool_rprimitive, int_rprimitive])]).unique_id
|
||
|
== "T2CO"
|
||
|
)
|