Tipragot
628be439b8
Cela permet de ne pas avoir de problèmes de compatibilité car python est dans le git.
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""Unit tests for RArray types."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from mypyc.common import PLATFORM_SIZE
|
|
from mypyc.ir.rtypes import (
|
|
RArray,
|
|
bool_rprimitive,
|
|
compute_rtype_alignment,
|
|
compute_rtype_size,
|
|
int_rprimitive,
|
|
)
|
|
|
|
|
|
class TestRArray(unittest.TestCase):
|
|
def test_basics(self) -> None:
|
|
a = RArray(int_rprimitive, 10)
|
|
assert a.item_type == int_rprimitive
|
|
assert a.length == 10
|
|
|
|
def test_str_conversion(self) -> None:
|
|
a = RArray(int_rprimitive, 10)
|
|
assert str(a) == "int[10]"
|
|
assert repr(a) == "<RArray <RPrimitive builtins.int>[10]>"
|
|
|
|
def test_eq(self) -> None:
|
|
a = RArray(int_rprimitive, 10)
|
|
assert a == RArray(int_rprimitive, 10)
|
|
assert a != RArray(bool_rprimitive, 10)
|
|
assert a != RArray(int_rprimitive, 9)
|
|
|
|
def test_hash(self) -> None:
|
|
assert hash(RArray(int_rprimitive, 10)) == hash(RArray(int_rprimitive, 10))
|
|
assert hash(RArray(bool_rprimitive, 5)) == hash(RArray(bool_rprimitive, 5))
|
|
|
|
def test_alignment(self) -> None:
|
|
a = RArray(int_rprimitive, 10)
|
|
assert compute_rtype_alignment(a) == PLATFORM_SIZE
|
|
b = RArray(bool_rprimitive, 55)
|
|
assert compute_rtype_alignment(b) == 1
|
|
|
|
def test_size(self) -> None:
|
|
a = RArray(int_rprimitive, 9)
|
|
assert compute_rtype_size(a) == 9 * PLATFORM_SIZE
|
|
b = RArray(bool_rprimitive, 3)
|
|
assert compute_rtype_size(b) == 3
|