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/Q15SampleEncodingTest.lvt

namespace Livt.Signal.Stream

/**
 * Verifies exact signed Q1.15 transport conversion and saturating encoding.
 */
@Test
component Q15SampleEncodingTest
{
	/**
	 * Preserves every representative signed boundary during decode and encode.
	 */
	@Test
	fn PreservesSignedBoundaries()
	{
		assert Q15SampleEncoding.Decode(0x8000) == -32768
		assert Q15SampleEncoding.Decode(0xFFFF) == -1
		assert Q15SampleEncoding.Decode(0x0000) == 0
		assert Q15SampleEncoding.Decode(0x0001) == 1
		assert Q15SampleEncoding.Decode(0x7FFF) == 32767

		assert Q15SampleEncoding.EncodeSaturating(-32769) == 0x8000
		assert Q15SampleEncoding.EncodeSaturating(-32768) == 0x8000
		assert Q15SampleEncoding.EncodeSaturating(-1) == 0xFFFF
		assert Q15SampleEncoding.EncodeSaturating(0) == 0x0000
		assert Q15SampleEncoding.EncodeSaturating(1) == 0x0001
		assert Q15SampleEncoding.EncodeSaturating(32767) == 0x7FFF
		assert Q15SampleEncoding.EncodeSaturating(32768) == 0x7FFF
	}
}