"""Unit tests for RArray types.""" import unittest from mypyc.common import PLATFORM_SIZE from mypyc.ir.rtypes import ( RArray, int_rprimitive, bool_rprimitive, compute_rtype_alignment, compute_rtype_size ) 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) == '[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