Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(28)

Unified Diff: third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix.html

Issue 2309013002: [GeometryInterface] Add fromFloat32Array & fromFloat64Array function (Closed)
Patch Set: [GeometryInterface] Add fromFloat32Array & fromFloat64Array function Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-readonly.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..c9058e41c90177c8fc8e5839b3589f9030fcfd05 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])); },
+ "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>
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/fast/dom/geometry-interfaces-dom-matrix-readonly.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698