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