OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../resources/testharness.js"></script> | 2 <script src="../resources/testharness.js"></script> |
3 <script src="../resources/testharnessreport.js"></script> | 3 <script src="../resources/testharnessreport.js"></script> |
| 4 <script src="resources/comparisons.js"></script> |
4 | 5 |
5 <script> | 6 <script> |
6 var EPSILON = 1e-6; // float epsilon | 7 var EPSILON = 1e-6; // float epsilon |
7 | 8 |
8 function tanUnitValue(unitValue) { | 9 function tanUnitValue(unitValue) { |
9 if (unitValue.unit == 'deg') { | 10 if (unitValue.unit == 'deg') { |
10 var radians = unitValue.value * Math.PI / 180; | 11 var radians = unitValue.value * Math.PI / 180; |
11 return Math.tan(radians); | 12 return Math.tan(radians); |
12 } | 13 } |
13 if (unitValue.unit = 'rad') { | 14 if (unitValue.unit = 'rad') { |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 cssText: "skew(0deg, 1rad)" | 56 cssText: "skew(0deg, 1rad)" |
56 } | 57 } |
57 ]; | 58 ]; |
58 | 59 |
59 for (let params of testParams) { | 60 for (let params of testParams) { |
60 test(() => { | 61 test(() => { |
61 assert_approx_equals(params.input.ax.value, params.ax.value, EPSILON); | 62 assert_approx_equals(params.input.ax.value, params.ax.value, EPSILON); |
62 assert_equals(params.input.ax.unit, params.ax.unit); | 63 assert_equals(params.input.ax.unit, params.ax.unit); |
63 assert_approx_equals(params.input.ay.value, params.ay.value, EPSILON); | 64 assert_approx_equals(params.input.ay.value, params.ay.value, EPSILON); |
64 assert_equals(params.input.ay.unit, params.ay.unit); | 65 assert_equals(params.input.ay.unit, params.ay.unit); |
65 }, "(ax, ay) value is correct for " + params.cssText); | 66 }, "(ax, ay) values are correct for " + params.cssText); |
66 } | 67 } |
67 | 68 |
68 for (let params of testParams) { | 69 for (let params of testParams) { |
69 test(() => { | 70 test(() => { |
70 assert_true(params.input.is2D()); | 71 assert_true(params.input.is2D()); |
71 }, "is2D value is correct for " + params.cssText); | 72 }, "is2D value is correct for " + params.cssText); |
72 } | 73 } |
73 | 74 |
74 for (let params of testParams) { | 75 for (let params of testParams) { |
75 test(() => { | 76 test(() => { |
76 assert_equals(params.input.toString(), params.cssText); | 77 assert_equals(params.input.toString(), params.cssText); |
77 }, "toString is correct for " + params.cssText); | 78 }, "toString is correct for " + params.cssText); |
78 } | 79 } |
79 | 80 |
80 test(() => { | 81 test(() => { |
81 assert_throws(new TypeError(), () => { new CSSSkew(); }); | 82 assert_throws(new TypeError(), () => { new CSSSkew(); }); |
82 assert_throws(new TypeError(), () => { new CSSSkew(null); }); | 83 assert_throws(new TypeError(), () => { new CSSSkew(null); }); |
83 assert_throws(new TypeError(), () => { new CSSSkew(1); }); | 84 assert_throws(new TypeError(), () => { new CSSSkew(1); }); |
84 assert_throws(new TypeError(), () => { new CSSSkew('1'); }); | 85 assert_throws(new TypeError(), () => { new CSSSkew('1'); }); |
85 assert_throws(new TypeError(), () => { | 86 assert_throws(new TypeError(), () => { |
86 new CSSSkew(new CSSUnitValue(1, 'deg')); | 87 new CSSSkew(new CSSUnitValue(1, 'deg')); |
87 }); | 88 }); |
88 }, "Invalid arguments to constructor throws an exception."); | 89 }, "Invalid arguments to constructor throws an exception."); |
89 | 90 |
90 for (let params of testParams) { | 91 for (let params of testParams) { |
91 test(() => { | 92 test(() => { |
92 var input = params.input; | 93 var input = params.input; |
93 var inputAsMatrix = input.asMatrix(); | 94 var transformValue = new CSSTransformValue([input]); |
94 assert_true(inputAsMatrix.is2D()); | 95 var inputAsMatrix = transformValue.toMatrix(); |
95 var tanAx = tanUnitValue(input.ax.degrees); | 96 assert_true(inputAsMatrix.is2D); |
96 var tanAy = tanUnitValue(input.ay.degrees); | 97 |
97 var expectedMatrix = new CSSMatrixComponent( | 98 var tanAx = tanUnitValue(input.ax); |
98 new DOMMatrixReadOnly([1, tanAy, tanAx, 1, 0, 0])); | 99 var tanAy = tanUnitValue(input.ay); |
99 for (var attribute in expectedMatrix) { | 100 var expectedMatrix = new DOMMatrixReadOnly([1, tanAy, tanAx, 1, 0, 0]); |
100 if (attribute == "matrix") { | 101 assert_matrix_approx_equals(inputAsMatrix, expectedMatrix, EPSILON); |
101 assert_matrix_approx_equals( | |
102 inputAsMatrix[attribute], expectedMatrix[attribute], epsilon); | |
103 } else { | |
104 assert_equals(inputAsMatrix[attribute], expectedMatrix[attribute]); | |
105 } | |
106 } | |
107 }, "asMatrix is constructed correctly for " + params.cssText); | 102 }, "asMatrix is constructed correctly for " + params.cssText); |
108 } | 103 } |
109 | 104 |
110 test(function() { | 105 test(() => { |
111 var skew = new CSSSkew( | 106 var skew = new CSSSkew( |
112 new CSSUnitValue(1, 'deg'), new CSSUnitValue(2, 'deg')); | 107 new CSSUnitValue(1, 'deg'), new CSSUnitValue(2, 'deg')); |
113 skew.ax = new CSSUnitValue(3, 'deg'); | 108 skew.ax = new CSSUnitValue(3, 'deg'); |
114 skew.ay = new CSSUnitValue(3, 'rad'); | 109 skew.ay = new CSSUnitValue(3, 'rad'); |
115 | 110 |
116 assert_equals(skew.ax.value, 3); | 111 assert_equals(skew.ax.value, 3); |
117 assert_equals(skew.ay.value, 3); | 112 assert_equals(skew.ay.value, 3); |
118 assert_equals(skew.ax.unit, 'deg'); | 113 assert_equals(skew.ax.unit, 'deg'); |
119 assert_equals(skew.ay.unit, 'rad'); | 114 assert_equals(skew.ay.unit, 'rad'); |
120 }, "Setting ax and ay with valid CSSUnitValues"); | 115 }, "Setting ax and ay with valid CSSUnitValues"); |
121 | 116 |
122 for (let a of ['ax', 'ay']) { | 117 for (let a of ['ax', 'ay']) { |
123 test(() => { | 118 test(() => { |
124 var skew = new CSSSkew( | 119 var skew = new CSSSkew( |
125 new CSSUnitValue(1, 'deg'), new CSSUnitValue(2, 'deg')); | 120 new CSSUnitValue(1, 'deg'), new CSSUnitValue(2, 'deg')); |
126 assert_throws(new TypeError(), () => { | 121 assert_throws(new TypeError(), () => { |
127 skew[a] = new CSSUnitValue(1, 'px'); | 122 skew[a] = new CSSUnitValue(1, 'px'); |
128 }); | 123 }); |
129 assert_throws(new TypeError(), () => { | 124 assert_throws(new TypeError(), () => { |
130 skew[a] = 'bananas'; | 125 skew[a] = 'bananas'; |
131 }); | 126 }); |
132 assert_throws(new TypeError(), () => { | 127 assert_throws(new TypeError(), () => { |
133 skew[a] = null; | 128 skew[a] = null; |
134 }); | 129 }); |
135 }, "Setting " + a + " with invalid values"); | 130 }, "Setting " + a + " with invalid values"); |
136 } | 131 } |
137 | 132 |
138 </script> | 133 </script> |
OLD | NEW |