Livt packages
Livt.IO
Version 1.8.1
Memory, UART, I2C, SPI, and Ethernet input/output components for Livt hardware designs.
Published files (126)
tests/memory/ArrayRamTest.lvt
namespace Livt.IO.Tests
using Livt.IO
/**
* Logic-array storage rejects invalid addresses without corrupting boundary cells.
*/
@Test
component ArrayRamTest
{
// Non-power-of-two capacity exercises the unused address range.
memory: ArrayRam<byte, 3>
/**
* Creates fresh zero-initialized logic storage.
*/
new()
{
memory = new ArrayRam<byte, 3>()
}
/**
* Checks initialization, both valid ends and writes beyond either end.
*/
@Test
fn PreservesBoundsAndOtherCells()
{
assert memory.Read(0) == 0
assert memory.Read(2) == 0
memory.Write(0, 0xA5)
memory.Write(2, 0x5A)
memory.Write(-1, 0xFF)
memory.Write(3, 0xFF)
assert memory.Read(0) == 0xA5
assert memory.Read(1) == 0
assert memory.Read(2) == 0x5A
assert memory.Read(-1) == 0
assert memory.Read(3) == 0
assert memory.IsValidAddress(2)
assert !memory.IsValidAddress(3)
}
}