forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package auratests.channels;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import utest.Assert;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import aura.Aura;
							 | 
						||
| 
								 | 
							
								import aura.channels.MixChannel;
							 | 
						||
| 
								 | 
							
								import aura.channels.UncompBufferResamplingChannel;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestBaseChannelHandle extends utest.Test {
							 | 
						||
| 
								 | 
							
									var handle: BaseChannelHandle;
							 | 
						||
| 
								 | 
							
									var channel: UncompBufferResamplingChannel;
							 | 
						||
| 
								 | 
							
									var data = new kha.arrays.Float32Array(8);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function setup() {
							 | 
						||
| 
								 | 
							
										channel = new UncompBufferResamplingChannel(data, false, 44100);
							 | 
						||
| 
								 | 
							
										handle = new BaseChannelHandle(channel);
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function teardown() {}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function test_setMixChannelAddsInputIfNotYetExisting() {
							 | 
						||
| 
								 | 
							
										final handle1 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle2 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(handle2));
							 | 
						||
| 
								 | 
							
										Assert.equals(1, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function test_setMixChannelDoesntAddAlreadyExistingInput() {
							 | 
						||
| 
								 | 
							
										final handle1 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle2 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(handle2));
							 | 
						||
| 
								 | 
							
										Assert.equals(1, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(handle2));
							 | 
						||
| 
								 | 
							
										Assert.equals(1, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function test_setMixChannelNullRemovesInputIfExisting() {
							 | 
						||
| 
								 | 
							
										final handle1 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle2 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(null));
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(handle2));
							 | 
						||
| 
								 | 
							
										Assert.equals(1, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(null));
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function test_setMixChannelSwitchingMixChannelCorrectlyChangesInputs() {
							 | 
						||
| 
								 | 
							
										final handle1 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle2 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle3 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle3.getNumInputs());
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(handle2));
							 | 
						||
| 
								 | 
							
										Assert.equals(1, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle3.getNumInputs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(handle3));
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
										Assert.equals(1, handle3.getNumInputs());
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function test_setMixChannelSelfReferenceReturnsFalseAndRemovesInput() {
							 | 
						||
| 
								 | 
							
										final handle1 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle2 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(handle2));
							 | 
						||
| 
								 | 
							
										Assert.equals(1, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.isFalse(handle1.setMixChannel(handle1));
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle2.getNumInputs());
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function test_setMixChannelCircularDependencyReturnsFalseAndRemovesInput() {
							 | 
						||
| 
								 | 
							
										final handle1 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle2 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle3 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
										final handle4 = new MixChannelHandle(new MixChannel());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle3.setMixChannel(handle4));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle1.setMixChannel(handle2));
							 | 
						||
| 
								 | 
							
										Assert.isTrue(handle2.setMixChannel(handle3));
							 | 
						||
| 
								 | 
							
										Assert.isFalse(handle3.setMixChannel(handle1));
							 | 
						||
| 
								 | 
							
										Assert.equals(0, handle4.getNumInputs());
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |