Livt packages

Livt.Signal

Version 0.1.1

Q1.15 sample streams, filters, windows, rate conversion, FFTs, oscillators, and mixers for Livt.

Published files (80)

tests/stream/Q15SampleDelayTest.lvt

namespace Livt.Signal.Stream

/**
 * Verifies framed Q1.15 transfer through a stallable three-stage delay.
 */
@Test
component Q15SampleDelayTest
{
	fixture: Q15SampleDelayFixture

	/**
	 * Creates a fresh composed stream fixture.
	 */
	new()
	{
		fixture = new Q15SampleDelayFixture()
	}

	/**
	 * Preserves a token and both markers while downstream backpressure is asserted.
	 */
	@Test
	fn PreservesTokenAcrossStall()
	{
		fixture.outputReady = false
		fixture.inputValid = false
		fixture.inputSample = 0x8001
		fixture.inputFirst = true
		fixture.inputLast = true
		Simulation.Wait(2)
		fixture.inputValid = true
		Simulation.Wait(1)
		fixture.inputValid = false
		fixture.inputFirst = false
		fixture.inputLast = false
		Simulation.Wait(4)
		assert fixture.outputValid
		assert fixture.outputSample == 0x8001
		assert fixture.outputFirst
		assert fixture.outputLast

		Simulation.Wait(5)
		assert fixture.outputValid
		assert fixture.outputSample == 0x8001
		assert fixture.outputFirst
		assert fixture.outputLast

		fixture.outputReady = true
		Simulation.Wait(2)
		assert !fixture.outputValid
	}
}