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/statistics/MovingStatisticsTest.lvt

namespace Livt.Signal.Statistics

/**
 * Verifies exact full-window results and marker alignment for all four statistics.
 */
@Test
component MovingStatisticsTest
{
	fixture: MovingStatisticsFixture
	extremes: MovingStatisticsExtremeFixture

	new()
	{
		fixture = new MovingStatisticsFixture()
		extremes = new MovingStatisticsExtremeFixture()
	}

	@Test
	fn ComputesRollingResultsAtInitiationIntervalOne()
	{
		Simulation.Wait(400)
		assert fixture.windowsFull
		assert fixture.sumAccepted == 3
		assert fixture.sum0 == 10
		assert fixture.sum1 == 14
		assert fixture.sum2 == 10
		assert fixture.meanAccepted == 3
		assert fixture.mean0 == 2
		assert fixture.mean1 == 4
		assert fixture.mean2 == 2
		assert fixture.rmsAccepted == 3
		assert fixture.rms0 == 2
		assert fixture.rms1 == 3
		assert fixture.rms2 == 3
		assert fixture.varianceAccepted == 3
		assert fixture.variance0 == 1
		assert fixture.variance1 == 1
		assert fixture.variance2 == 7
		assert !fixture.firstResults
		assert fixture.lastResults
	}

	/**
	 * Covers capacity one and the complete signed-16 magnitude range.
	 */
	@Test
	fn HandlesSignedExtremaAtWindowSizeOne()
	{
		Simulation.Wait(400)
		assert extremes.rmsAccepted == 2
		assert extremes.rms0 == 32768
		assert extremes.rms1 == 32767
		assert extremes.varianceAccepted == 2
		assert extremes.variance0 == 0
		assert extremes.variance1 == 0
	}
}