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 );
 | |
| 
 | |
|    }
 | |
| }
 | |
| 
 |