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

Side by Side Diff: third_party/WebKit/LayoutTests/inspector/tracing/segmented-range.html

Issue 1729603002: DevTools: Extract SegmentedRange from TimelineIRModel to utilities.js (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 unified diff | Download patch
OLDNEW
(Empty)
1 <html>
2 <head>
3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="datagrid-test.js"></script>
5 <script>
6 function test()
7 {
8 function testCase(testName, data, merge, expectSameBackwards)
9 {
10 InspectorTest.addResult("Test case: " + testName);
11 InspectorTest.addResult("Input Segments: " + JSON.stringify(data));
12 var range = WebInspector.SegmentedRange(merge);
13
14 var forwardRange = new WebInspector.SegmentedRange(merge);
15 data.map(entry => new WebInspector.Segment(entry[0], entry[1], entry[2]) ).forEach(forwardRange.append, forwardRange);
16 var forward = forwardRange.segments();
17
18 var backwardRange = new WebInspector.SegmentedRange(merge);
19 data.reverse().map(entry => new WebInspector.Segment(entry[0], entry[1], entry[2])).forEach(backwardRange.append, backwardRange);
20 var backward = backwardRange.segments();
21
22 // Only do reverse if we merge, otherwise result is order-dependent.
23 if (expectSameBackwards && forward.length !== backward.length) {
24 InspectorTest.addResult(`FAIL: mismatch between forward and backward results, ${forward.length} vs. ${backward.length}`);
25 expectSameBackwards = false;
26 }
27 InspectorTest.addResult("Result:");
28 for (var i = 0; i < forward.length; ++i) {
29 var f = forward[i], b = backward[i];
30 InspectorTest.addResult(`${f.begin} - ${f.end}: ${f.data}`);
31 if (expectSameBackwards && b && (f.begin !== b.begin || f.end !== b. end || f.data !== b.data))
32 InspectorTest.addResult(`FAIL: Forward/backward mismatch, rever se segment is ${b.begin} - ${b.end}: ${b.data}`);
33 }
34 if (!expectSameBackwards) {
35 InspectorTest.addResult("Result backwards:");
36 for (var b of backward)
37 InspectorTest.addResult(`${b.begin} - ${b.end}: ${b.data}`);
38 }
39 }
40
41 function merge(first, second)
42 {
43 if (first.begin > second.begin)
44 InspectorTest.addResult(`FAIL: merge() callback called with argumen ts in wrong order, ${first.begin} vs. ${second.begin}`);
45 return first.end >= second.begin && first.data === second.data ? first : null;
46 }
47
48 testCase("one", [[0, 1, "a"]], merge, true);
49 testCase("two adjacent", [[0, 1, "a"], [1, 2, "a"]], merge, true);
50 testCase("two apart", [[0, 1, "a"], [2, 3, "a"]], merge, true);
51 testCase("two overlapping", [[0, 2, "a"], [2, 3, "a"]], merge, true);
52 testCase("two overlapping no merge ", [[0, 2, "a"], [2, 3, "b"]], null, true );
53 testCase("one inside another", [[0, 3, "a"], [1, 2, "a"]], merge, true);
54 testCase("one inside another, no merge", [[0, 3, "a"], [1, 2, "b"]]);
55 testCase("one between two others", [[0, 2, "a"], [3, 5, "a"], [2, 3, "a"]], merge, true);
56 testCase("one between two others, no merge", [[0, 2, "a"], [3, 5, "b"], [2, 3, "a"]], null, true);
57 testCase("one overlapping two others", [[0, 2, "a"], [3, 5, "a"], [1, 4, "a" ]], merge, true);
58 testCase("one overlapping two others, no merge", [[0, 2, "a"], [3, 5, "b"], [1, 4, "a"]]);
59 testCase("one consuming many:", [[0, 1, "a"], [2, 3, "a"], [4, 5, "a"], [6, 7, "a"], [2, 6, "a"]], merge, true);
60 testCase("one consuming many, no merge:", [[0, 1, "a"], [2, 3, "a"], [4, 5, "a"], [6, 7, "a"], [2, 6, "a"]]);
61 InspectorTest.completeTest();
62 }
63 </script>
64 </head>
65 <body onload="runTest()">
66 <p>Tests SegmentedRange</p>
67 </body>
68 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698