blob: e6a89586d44bb4bad315a79f92ad82424759430f [file] [log] [blame]
// |reftest| skip-if(!this.hasOwnProperty("TypedObject"))
var BUGNUMBER = 922216;
var summary = 'TypedObjects Equivalent ArrayTypes';
var ArrayType = TypedObject.ArrayType;
var StructType = TypedObject.StructType;
var uint8 = TypedObject.uint8;
var uint16 = TypedObject.uint16;
var uint32 = TypedObject.uint32;
var uint8Clamped = TypedObject.uint8Clamped;
var int8 = TypedObject.int8;
var int16 = TypedObject.int16;
var int32 = TypedObject.int32;
var float32 = TypedObject.float32;
var float64 = TypedObject.float64;
function assertEquivalent(t1, t2) {
assertEq(true, t1.equivalent(t2));
assertEq(true, t2.equivalent(t1));
}
function assertNotEquivalent(t1, t2) {
assertEq(false, t1.equivalent(t2));
assertEq(false, t2.equivalent(t1));
}
function runTests() {
print(BUGNUMBER + ": " + summary);
// Create a line:
var PixelType1 = new StructType({x: uint8, y: uint8});
var PixelsType1 = PixelType1.array(22);
// Sanity checks about type equivalence:
assertEquivalent(PixelType1, PixelType1);
assertEquivalent(PixelsType1, PixelsType1);
assertNotEquivalent(PixelType1, PixelsType1);
// Define the same two types again. Equivalent.
var PixelType2 = new StructType({x: uint8, y: uint8});
var PixelsType2 = PixelType2.array(22);
assertEquivalent(PixelType1, PixelType2);
assertEquivalent(PixelsType1, PixelsType2);
// Define the pixel type with field order reversed. Not equivalent.
var PixelType3 = new StructType({y: uint8, x: uint8});
var PixelsType3 = PixelType3.array(22);
assertNotEquivalent(PixelType1, PixelType3);
assertNotEquivalent(PixelsType1, PixelsType3);
// Define the pixels type with different number of elements. Not equivalent.
var PixelsType3 = PixelType1.array(23);
assertNotEquivalent(PixelsType1, PixelsType3);
reportCompare(true, true);
print("Tests complete");
}
runTests();