 Chromium Code Reviews
 Chromium Code Reviews Issue 2309013002:
  [GeometryInterface] Add fromFloat32Array & fromFloat64Array function  (Closed)
    
  
    Issue 2309013002:
  [GeometryInterface] Add fromFloat32Array & fromFloat64Array function  (Closed) 
  | Index: third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix.html | 
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix.html b/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix.html | 
| index f394c57d40b7fa85fa610fefe4f3edc1b449166a..488c800e0f51779d39706b4c7fef57040699c08d 100644 | 
| --- a/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix.html | 
| +++ b/third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix.html | 
| @@ -61,6 +61,76 @@ test(function() { | 
| }, "DOMMatrix(other) constructor"); | 
| test(function() { | 
| + var float32Array = new Float32Array([1, 2, 3, 4, 5, 6]); | 
| + var matrix2d = DOMMatrix.fromFloat32Array(float32Array); | 
| + assert_true(matrix2d.is2D); | 
| + assert_equals(matrix2d.a, 1); | 
| + assert_equals(matrix2d.b, 2); | 
| + assert_equals(matrix2d.c, 3); | 
| + assert_equals(matrix2d.d, 4); | 
| + assert_equals(matrix2d.e, 5); | 
| + assert_equals(matrix2d.f, 6); | 
| +}, "DOMMatrix fromFloat32Array - 2D matrix"); | 
| + | 
| +test(function() { | 
| + // 3.1 is not representable as a 32-bit float | 
| + var float64Array = new Float64Array([1, 2, 3, 3.1, 4, 5]); | 
| + var matrix2d = DOMMatrix.fromFloat64Array(float64Array); | 
| + assert_true(matrix2d.is2D); | 
| + assert_equals(matrix2d.a, 1); | 
| + assert_equals(matrix2d.b, 2); | 
| + assert_equals(matrix2d.c, 3); | 
| + assert_equals(matrix2d.d, 3.1); | 
| + assert_equals(matrix2d.e, 4); | 
| + assert_equals(matrix2d.f, 5); | 
| +}, "DOMMatrix fromFloat64Array - 2D matrix"); | 
| + | 
| +test(function() { | 
| + var float32Array = new Float32Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]); | 
| + var matrix3d = DOMMatrix.fromFloat32Array(float32Array); | 
| + assert_false(matrix3d.is2D); | 
| + assert_equals(matrix3d.m11, 1); | 
| + assert_equals(matrix3d.m12, 2); | 
| + assert_equals(matrix3d.m13, 3); | 
| + assert_equals(matrix3d.m14, 4); | 
| + assert_equals(matrix3d.m21, 5); | 
| + assert_equals(matrix3d.m22, 6); | 
| + assert_equals(matrix3d.m23, 7); | 
| + assert_equals(matrix3d.m24, 8); | 
| + assert_equals(matrix3d.m31, 9); | 
| + assert_equals(matrix3d.m32, 10); | 
| + assert_equals(matrix3d.m33, 11); | 
| + assert_equals(matrix3d.m34, 12); | 
| + assert_equals(matrix3d.m41, 13); | 
| + assert_equals(matrix3d.m42, 14); | 
| + assert_equals(matrix3d.m43, 15); | 
| + assert_equals(matrix3d.m44, 16); | 
| +}, "DOMMatrix fromFloat32Array - 3D matrix"); | 
| + | 
| +test(function() { | 
| + // 10.1 and 16.6 are not representable as a 32-bit float | 
| + var float64Array = new Float64Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10.1, 11, 12, 13, 14, 15, 16.6]); | 
| + var matrix3d = DOMMatrix.fromFloat64Array(float64Array); | 
| + assert_false(matrix3d.is2D); | 
| + assert_equals(matrix3d.m11, 1); | 
| + assert_equals(matrix3d.m12, 2); | 
| + assert_equals(matrix3d.m13, 3); | 
| + assert_equals(matrix3d.m14, 4); | 
| + assert_equals(matrix3d.m21, 5); | 
| + assert_equals(matrix3d.m22, 6); | 
| + assert_equals(matrix3d.m23, 7); | 
| + assert_equals(matrix3d.m24, 8); | 
| + assert_equals(matrix3d.m31, 9); | 
| + assert_equals(matrix3d.m32, 10.1); | 
| + assert_equals(matrix3d.m33, 11); | 
| + assert_equals(matrix3d.m34, 12); | 
| + assert_equals(matrix3d.m41, 13); | 
| + assert_equals(matrix3d.m42, 14); | 
| + assert_equals(matrix3d.m43, 15); | 
| + assert_equals(matrix3d.m44, 16.6); | 
| +}, "DOMMatrix fromFloat64Array - 3D matrix"); | 
| + | 
| +test(function() { | 
| var matrix = new DOMMatrix(); | 
| matrix.a = 10; | 
| matrix.b = 20; | 
| @@ -108,6 +178,42 @@ test(function() { | 
| assert_true(matrix.isIdentity); | 
| }, "DOMMatrix.is2D can never be set to 'true' when it was set to 'false' before calling setMatrixValue()."); | 
| +test(function() { | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat32Array(new Float32Array([1, 2, ,3, 4, 5])); }, | 
| 
zino
2016/09/08 17:57:22
Hmm, these test looks weird.
[1, 2, , 3, 4, 5]  =
 
zino
2016/09/08 18:09:40
Ah, Sorry.
This is not exception. There will be n
 
Hwanseung Lee
2016/09/09 00:49:04
actually it is typo. i did remove comma of front 3
 | 
| + "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat64Array(new Float64Array([1, 2, ,3, 4, 5])); }, | 
| + "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat32Array(new Float32Array([1, 2, ,3, 4, 5, 6 ,7])); }, | 
| + "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat64Array(new Float64Array([1, 2, ,3, 4, 5, 6 ,7])); }, | 
| + "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements."); | 
| +}, "DOMMatrix fromFloat*Array - invalid array size of nearby 6"); | 
| + | 
| +test(function() { | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat32Array(new Float32Array([1, 2, ,3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15])); }, | 
| + "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat64Array(new Float64Array([1, 2, ,3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15])); }, | 
| + "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat32Array(new Float32Array([1, 2, ,3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])); }, | 
| + "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat64Array(new Float64Array([1, 2, ,3, 4, 5, 6 ,7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])); }, | 
| + "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements."); | 
| +}, "DOMMatrix fromFloat*Array - invalid array size of nearby 16"); | 
| + | 
| +test(function() { | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat32Array(new Float32Array([])); }, | 
| + "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat64Array(new Float64Array([])); }, | 
| + "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat32Array(new Float32Array([1])); }, | 
| + "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat64Array(new Float64Array([1])); }, | 
| + "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat32Array(new Float32Array(65536)); }, | 
| + "fromFloat32Array function only accepts 1 Float32Array with 6 or 16 elements."); | 
| + assert_throws(new TypeError(), function() { DOMMatrix.fromFloat64Array(new Float64Array(65536)); }, | 
| + "fromFloat64Array function only accepts 1 Float64Array with 6 or 16 elements."); | 
| +}, "DOMMatrix fromFloat*Array - invalid array size"); | 
| </script> | 
| </body> | 
| </html> |