Tipragot
628be439b8
Cela permet de ne pas avoir de problèmes de compatibilité car python est dans le git.
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"
|
|
)
|