@ -730,4 +730,108 @@ public unsafe class CSharpTests : GeneratorTestFixture
				@@ -730,4 +730,108 @@ public unsafe class CSharpTests : GeneratorTestFixture
					 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        var  b  =  ( MyMacroTestEnum ) '2' ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        Assert . IsTrue ( a  = =  MyMacroTestEnum . MY_MACRO_TEST_1  & &  b  = =  MyMacroTestEnum . MY_MACRO_TEST_2 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    [Test]  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public  void  TestGenerationOfArraySetter ( )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        var  complexArrayElements  =  new  ComplexArrayElement [ 1 0 ] ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 0 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 1 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 2 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 3 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 4 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 5 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 6 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 7 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 8 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 9 ]  =  new  ComplexArrayElement ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 0 ] . BoolField  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 0 ] . IntField  =  2 4 5 0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 0 ] . FloatField  =  - 4 0 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 1 ] . BoolField  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 1 ] . IntField  =  2 4 5 1 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 1 ] . FloatField  =  - 4 1 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 2 ] . BoolField  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 2 ] . IntField  =  2 4 5 2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 2 ] . FloatField  =  - 4 2 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 3 ] . BoolField  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 3 ] . IntField  =  2 4 5 3 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 3 ] . FloatField  =  - 4 3 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 4 ] . BoolField  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 4 ] . IntField  =  2 4 5 4 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 4 ] . FloatField  =  - 4 4 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 5 ] . BoolField  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 5 ] . IntField  =  2 4 5 5 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 5 ] . FloatField  =  - 4 5 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 6 ] . BoolField  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 6 ] . IntField  =  2 4 5 6 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 6 ] . FloatField  =  - 4 6 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 7 ] . BoolField  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 7 ] . IntField  =  2 4 5 7 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 7 ] . FloatField  =  - 4 7 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 8 ] . BoolField  =  false ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 8 ] . IntField  =  2 4 5 8 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 8 ] . FloatField  =  - 4 8 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 9 ] . BoolField  =  true ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 9 ] . IntField  =  2 4 5 9 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        complexArrayElements [ 9 ] . FloatField  =  - 4 9 ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        using  ( HasComplexArray  tests  =  new  HasComplexArray  {  ComplexArray  =  complexArrayElements  } )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 0 ] . BoolField ,  true ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 0 ] . IntField ,  2 4 5 0 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 0 ] . FloatField ,  - 4 0 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 1 ] . BoolField ,  false ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 1 ] . IntField ,  2 4 5 1 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 1 ] . FloatField ,  - 4 1 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 2 ] . BoolField ,  true ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 2 ] . IntField ,  2 4 5 2 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 2 ] . FloatField ,  - 4 2 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 3 ] . BoolField ,  true ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 3 ] . IntField ,  2 4 5 3 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 3 ] . FloatField ,  - 4 3 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 4 ] . BoolField ,  false ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 4 ] . IntField ,  2 4 5 4 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 4 ] . FloatField ,  - 4 4 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 5 ] . BoolField ,  true ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 5 ] . IntField ,  2 4 5 5 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 5 ] . FloatField ,  - 4 5 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 6 ] . BoolField ,  true ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 6 ] . IntField ,  2 4 5 6 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 6 ] . FloatField ,  - 4 6 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 7 ] . BoolField ,  true ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 7 ] . IntField ,  2 4 5 7 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 7 ] . FloatField ,  - 4 7 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 8 ] . BoolField ,  false ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 8 ] . IntField ,  2 4 5 8 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 8 ] . FloatField ,  - 4 8 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 9 ] . BoolField ,  true ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 9 ] . IntField ,  2 4 5 9 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            Assert . AreEqual ( tests . ComplexArray [ 9 ] . FloatField ,  - 4 9 ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        foreach  ( var  complexArrayElement  in  complexArrayElements )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            complexArrayElement . Dispose ( ) ;  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}