function runTests(data) { for (let entry of data) { test(function() { const left = new URLPattern(entry.left); const right = new URLPattern(entry.right); assert_equals(URLPattern.compareComponent(entry.component, left, right), entry.expected); // We have to coerce to an integer here in order to avoid asserting // that `+0` is `-0`. const reverse_expected = ~~(entry.expected * -1); assert_equals(URLPattern.compareComponent(entry.component, right, left), reverse_expected, "reverse order"); assert_equals(URLPattern.compareComponent(entry.component, left, left), 0, "left equality"); assert_equals(URLPattern.compareComponent(entry.component, right, right), 0, "right equality"); }, `Component: ${entry.component} ` + `Left: ${JSON.stringify(entry.left)} ` + `Right: ${JSON.stringify(entry.right)}`); } } promise_test(async function() { const response = await fetch('resources/urlpattern-compare-test-data.json'); const data = await response.json(); runTests(data); }, 'Loading data...');