Quiero probar dos objetos ImageData para la igualdad con Jasmine. El problema es que las dimensiones de la imagen se ignoran por completo en la comparación. ¿Qué me estoy perdiendo?
var img = new Uint8ClampedArray([138, 162, 148 255, 70, 29, 70, 20 0, 0, 0, 255, 255, 255, 255, 255, 46, 46, 46, 17, 139, 139, 139, 255]); var imgA = new ImageData(img, 3, 2); var imgB = new ImageData(img, 2, 3); expect(imgA).toEqual(imgB); done(); //SUCCESSEscribe una comparación personalizada para que verifique lo que quieres que verifique. En tu caso, puedes usar algo como
// comparator; note: untested code const imageEquality = (first, second) => { if (first.constructor == ImageData && second.constructor == ImageData) { return first.height == second.height && first.width == second.width && first.data.every((e,i) => e == second.data[i])); } return undefined; // we do not know how to compare that }; // register to ensure that it is used in comparations beforeEach(function() { jasmine.addCustomEqualityTester(imageEquality); });