54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package tests;
							 | 
						||
| 
								 | 
							
								import externs.RGB;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestRgb extends haxe.unit.TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								   public function testCreate()
							 | 
						||
| 
								 | 
							
								   {
							 | 
						||
| 
								 | 
							
								      // Pointer-like sysntax
							 | 
						||
| 
								 | 
							
								      var rgbPtr = RGB.create(255,0,128);
							 | 
						||
| 
								 | 
							
								      assertTrue( rgbPtr.ptr.toInt() == 0xff0080 );
							 | 
						||
| 
								 | 
							
								      rgbPtr.ptr.deleteMe();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      // Structure-like syntax
							 | 
						||
| 
								 | 
							
								      var rgbStruct:RGBStruct = null;
							 | 
						||
| 
								 | 
							
								      rgbStruct.r = 1;
							 | 
						||
| 
								 | 
							
								      rgbStruct = null;
							 | 
						||
| 
								 | 
							
								      rgbStruct.r = 1;
							 | 
						||
| 
								 | 
							
								      rgbStruct.g = 2;
							 | 
						||
| 
								 | 
							
								      rgbStruct.b = 3;
							 | 
						||
| 
								 | 
							
								      assertTrue( rgbStruct.toInt() == 0x010203 );
							 | 
						||
| 
								 | 
							
								      // Store in dynamic
							 | 
						||
| 
								 | 
							
								      var d:Dynamic = rgbStruct;
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      // Reference (pointer) like syntax
							 | 
						||
| 
								 | 
							
								      var rgbRef:RGBRef = rgbStruct;
							 | 
						||
| 
								 | 
							
								      rgbRef.g = 255;
							 | 
						||
| 
								 | 
							
								      assertTrue( rgbStruct.toInt() == 0x01ff03 );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      // Get from dynamic
							 | 
						||
| 
								 | 
							
								      rgbStruct = d;
							 | 
						||
| 
								 | 
							
								      assertTrue( rgbStruct.toInt() == 0x010203 );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var rgbStruct2:RGBStruct = cast rgbRef;
							 | 
						||
| 
								 | 
							
								      assertTrue( rgbStruct2.toInt() == 0x010203 );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      // Reference refers to rgbStruct, not rgbStruct2
							 | 
						||
| 
								 | 
							
								      rgbRef.b = 0;
							 | 
						||
| 
								 | 
							
								      assertTrue( rgbStruct2.toInt() == 0x010203 );
							 | 
						||
| 
								 | 
							
								      assertTrue( rgbStruct.toInt() == 0x010200 );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      // TODO - non-dynamic versions
							 | 
						||
| 
								 | 
							
								      var d2:Dynamic = rgbStruct2;
							 | 
						||
| 
								 | 
							
								      // == dynamic
							 | 
						||
| 
								 | 
							
								      assertTrue( d2==d );
							 | 
						||
| 
								 | 
							
								      // != dynamic
							 | 
						||
| 
								 | 
							
								      var d0:Dynamic = rgbStruct;
							 | 
						||
| 
								 | 
							
								      assertTrue( d0!=d );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 |