Livt packages
Livt.ML
Version 1.6.1
Fixed-size quantized inference, tensor storage, attention, and transformer building blocks for Livt.
Published files (132)
tests/storage/IntegerTensorRamTest.lvt
namespace Livt.ML.Tests.Storage
using Livt.ML.Storage
/**
* Exercises IntegerTensorRam with a shared fixture instance. Each scenario establishes the
* inputs and state it needs.
*/
@Test
component IntegerTensorRamTest
{
// Shared fixture instances, signals, and observation state.
activations: Int16TensorRam2048
accumulators: Int32TensorRam2048
/**
* Creates the shared fixture instances (Int16TensorRam2048, Int32TensorRam2048). Tests
* initialize the state required by their scenario.
*/
new()
{
activations = new Int16TensorRam2048(512)
accumulators = new Int32TensorRam2048(2048)
}
/**
* Checks that the component preserves signed values and logical bounds.
*/
@Test
fn PreservesSignedValuesAndLogicalBounds()
{
activations.Write(0, -32768)
activations.Write(1, -984)
activations.Write(511, 32767)
activations.Write(512, 123)
assert activations.Read(0) == -32768
assert activations.Read(1) == -984
assert activations.Read(511) == 32767
assert activations.Read(512) == 0
accumulators.Write(0, -2147483647)
accumulators.Write(1310, 381238)
accumulators.Write(2047, 2147483647)
assert accumulators.Read(0) == -2147483647
assert accumulators.Read(1310) == 381238
assert accumulators.Read(2047) == 2147483647
assert accumulators.Read(-1) == 0
}
/**
* Checks that the component supports overwrite without tensor copies.
*/
@Test
fn SupportsOverwriteWithoutTensorCopies()
{
activations.Write(64, 3914)
assert activations.Read(64) == 3914
activations.Write(64, -2423)
assert activations.Read(64) == -2423
accumulators.Write(256, 342466)
assert accumulators.Read(256) == 342466
accumulators.Write(256, 381238)
assert accumulators.Read(256) == 381238
}
}