OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright (c) 2013 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2013 The Chromium Authors. All rights reserved. |
4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 | 7 |
8 <link rel="import" href="/tracing/base/range_utils.html"> | 8 <link rel="import" href="/tracing/base/math/range_utils.html"> |
9 <link rel="import" href="/tracing/core/test_utils.html"> | 9 <link rel="import" href="/tracing/core/test_utils.html"> |
10 | 10 |
11 <script> | 11 <script> |
12 'use strict'; | 12 'use strict'; |
13 | 13 |
14 tr.b.unittest.testSuite(function() { | 14 tr.b.unittest.testSuite(function() { |
15 function simpleMerger(events) { | 15 function simpleMerger(events) { |
16 return { | 16 return { |
17 min: events[0].min, | 17 min: events[0].min, |
18 max: events[events.length - 1].max | 18 max: events[events.length - 1].max |
19 }; | 19 }; |
20 } | 20 } |
21 test('simple', function() { | 21 test('simple', function() { |
22 var inEvents = [ | 22 var inEvents = [ |
23 {min: 0, max: 100}, | 23 {min: 0, max: 100}, |
24 {min: 100, max: 120}, | 24 {min: 100, max: 120}, |
25 {min: 200, max: 220} | 25 {min: 200, max: 220} |
26 ]; | 26 ]; |
27 | 27 |
28 var merged = tr.b.mergeRanges(inEvents, 50, simpleMerger); | 28 var merged = tr.b.math.mergeRanges(inEvents, 50, simpleMerger); |
29 | 29 |
30 assert.equal(merged.length, 2); | 30 assert.equal(merged.length, 2); |
31 assert.deepEqual(merged[0], {min: 0, max: 120}); | 31 assert.deepEqual(merged[0], {min: 0, max: 120}); |
32 assert.deepEqual(merged[1], {min: 200, max: 220}); | 32 assert.deepEqual(merged[1], {min: 200, max: 220}); |
33 }); | 33 }); |
34 | 34 |
35 test('overlapping', function() { | 35 test('overlapping', function() { |
36 var inEvents = [ | 36 var inEvents = [ |
37 {min: 0, max: 100}, | 37 {min: 0, max: 100}, |
38 {min: 80, max: 120}, | 38 {min: 80, max: 120}, |
39 {min: 200, max: 220} | 39 {min: 200, max: 220} |
40 ]; | 40 ]; |
41 | 41 |
42 var merged = tr.b.mergeRanges(inEvents, 50, simpleMerger); | 42 var merged = tr.b.math.mergeRanges(inEvents, 50, simpleMerger); |
43 | 43 |
44 assert.equal(merged.length, 2); | 44 assert.equal(merged.length, 2); |
45 assert.deepEqual(merged[0], {min: 0, max: 120}); | 45 assert.deepEqual(merged[0], {min: 0, max: 120}); |
46 assert.deepEqual(merged[1], {min: 200, max: 220}); | 46 assert.deepEqual(merged[1], {min: 200, max: 220}); |
47 }); | 47 }); |
48 | 48 |
49 test('middleOneIsSmall', function() { | 49 test('middleOneIsSmall', function() { |
50 var inEvents = [ | 50 var inEvents = [ |
51 {min: 0, max: 100}, | 51 {min: 0, max: 100}, |
52 {min: 40, max: 50}, | 52 {min: 40, max: 50}, |
53 {min: 100, max: 120} | 53 {min: 100, max: 120} |
54 ]; | 54 ]; |
55 | 55 |
56 var merged = tr.b.mergeRanges(inEvents, 50, simpleMerger); | 56 var merged = tr.b.math.mergeRanges(inEvents, 50, simpleMerger); |
57 | 57 |
58 assert.equal(merged.length, 1); | 58 assert.equal(merged.length, 1); |
59 assert.deepEqual(merged[0], {min: 0, max: 120}); | 59 assert.deepEqual(merged[0], {min: 0, max: 120}); |
60 }); | 60 }); |
61 | 61 |
62 test('firstEventIsSplitPoint', function() { | 62 test('firstEventIsSplitPoint', function() { |
63 var inEvents = [ | 63 var inEvents = [ |
64 {min: 0, max: 100}, | 64 {min: 0, max: 100}, |
65 {min: 150, max: 200} | 65 {min: 150, max: 200} |
66 ]; | 66 ]; |
67 | 67 |
68 var merged = tr.b.mergeRanges(inEvents, 25, simpleMerger); | 68 var merged = tr.b.math.mergeRanges(inEvents, 25, simpleMerger); |
69 | 69 |
70 assert.equal(merged.length, 2); | 70 assert.equal(merged.length, 2); |
71 assert.deepEqual(merged[0], {min: 0, max: 100}); | 71 assert.deepEqual(merged[0], {min: 0, max: 100}); |
72 assert.deepEqual(merged[1], {min: 150, max: 200}); | 72 assert.deepEqual(merged[1], {min: 150, max: 200}); |
73 }); | 73 }); |
74 | 74 |
75 test('mergeSingleEvent', function() { | 75 test('mergeSingleEvent', function() { |
76 var inEvents = [ | 76 var inEvents = [ |
77 {min: 0, max: 100} | 77 {min: 0, max: 100} |
78 ]; | 78 ]; |
79 | 79 |
80 var mergeCount = 0; | 80 var mergeCount = 0; |
81 tr.b.mergeRanges(inEvents, 25, function(events) { | 81 tr.b.math.mergeRanges(inEvents, 25, function(events) { |
82 assert.deepEqual(events, inEvents); | 82 assert.deepEqual(events, inEvents); |
83 mergeCount++; | 83 mergeCount++; |
84 }); | 84 }); |
85 assert.equal(mergeCount, 1); | 85 assert.equal(mergeCount, 1); |
86 }); | 86 }); |
87 | 87 |
88 test('zeroDurationSplit', function() { | 88 test('zeroDurationSplit', function() { |
89 var inEvents = [0, 10, 20, 50, 60]; | 89 var inEvents = [0, 10, 20, 50, 60]; |
90 inEvents = inEvents.map(function(event) { | 90 inEvents = inEvents.map(function(event) { |
91 return tr.b.Range.fromExplicitRange(event, event); | 91 return tr.b.math.Range.fromExplicitRange(event, event); |
92 }); | 92 }); |
93 var timestampMerger = function(timestamps) { | 93 var timestampMerger = function(timestamps) { |
94 return { | 94 return { |
95 min: timestamps[0].min, | 95 min: timestamps[0].min, |
96 max: timestamps[timestamps.length - 1].max | 96 max: timestamps[timestamps.length - 1].max |
97 }; | 97 }; |
98 }; | 98 }; |
99 var merged = tr.b.mergeRanges(inEvents, 15, timestampMerger); | 99 var merged = tr.b.math.mergeRanges(inEvents, 15, timestampMerger); |
100 assert.equal(merged.length, 2); | 100 assert.equal(merged.length, 2); |
101 assert.deepEqual(merged[0], {min: 0, max: 20}); | 101 assert.deepEqual(merged[0], {min: 0, max: 20}); |
102 assert.deepEqual(merged[1], {min: 50, max: 60}); | 102 assert.deepEqual(merged[1], {min: 50, max: 60}); |
103 }); | 103 }); |
104 | 104 |
105 test('findEmptyRangesBetweenRanges', function() { | 105 test('findEmptyRangesBetweenRanges', function() { |
106 var events = [ | 106 var events = [ |
107 {min: 2, max: 4}, | 107 {min: 2, max: 4}, |
108 {min: 1, max: 3}, | 108 {min: 1, max: 3}, |
109 {min: 6, max: 8} | 109 {min: 6, max: 8} |
110 ]; | 110 ]; |
111 var ranges = tr.b.findEmptyRangesBetweenRanges( | 111 var ranges = tr.b.math.findEmptyRangesBetweenRanges( |
112 events, {min: 0, max: 10}); | 112 events, {min: 0, max: 10}); |
113 assert.equal(3, ranges.length); | 113 assert.equal(3, ranges.length); |
114 assert.equal(0, ranges[0].min); | 114 assert.equal(0, ranges[0].min); |
115 assert.equal(1, ranges[0].max); | 115 assert.equal(1, ranges[0].max); |
116 assert.equal(4, ranges[1].min); | 116 assert.equal(4, ranges[1].min); |
117 assert.equal(6, ranges[1].max); | 117 assert.equal(6, ranges[1].max); |
118 assert.equal(8, ranges[2].min); | 118 assert.equal(8, ranges[2].min); |
119 assert.equal(10, ranges[2].max); | 119 assert.equal(10, ranges[2].max); |
120 }); | 120 }); |
121 | 121 |
122 test('findEmptyRangesWithEmptyInput', function() { | 122 test('findEmptyRangesWithEmptyInput', function() { |
123 var ranges = tr.b.findEmptyRangesBetweenRanges( | 123 var ranges = tr.b.math.findEmptyRangesBetweenRanges( |
124 [], {min: 0, max: 10}); | 124 [], {min: 0, max: 10}); |
125 assert.equal(1, ranges.length); | 125 assert.equal(1, ranges.length); |
126 assert.equal(0, ranges[0].min); | 126 assert.equal(0, ranges[0].min); |
127 assert.equal(10, ranges[0].max); | 127 assert.equal(10, ranges[0].max); |
128 | 128 |
129 ranges = tr.b.findEmptyRangesBetweenRanges([]); | 129 ranges = tr.b.math.findEmptyRangesBetweenRanges([]); |
130 assert.equal(0, ranges.length); | 130 assert.equal(0, ranges.length); |
131 }); | 131 }); |
132 }); | 132 }); |
133 </script> | 133 </script> |
OLD | NEW |