| function assert_array_approx_equals(actual, expected, epsilon, description) |
| { |
| assert_true(actual.length === expected.length, |
| (description + ": lengths differ, expected " + expected.length + " got " + actual.length)) |
| |
| for (var i=0; i < actual.length; i++) { |
| assert_approx_equals(actual[i], expected[i], epsilon, (description + ": element " + i)) |
| } |
| } |
| |
| /* |
| Returns an array (typed or not), of the passed array with removed trailing and ending |
| zero-valued elements |
| */ |
| function trimEmptyElements(array) { |
| var start = 0; |
| var end = array.length; |
| |
| while (start < array.length) { |
| if (array[start] !== 0) { |
| break; |
| } |
| start++; |
| } |
| |
| while (end > 0) { |
| end--; |
| if (array[end] !== 0) { |
| break; |
| } |
| } |
| return array.subarray(start, end); |
| } |