| <!DOCTYPE html> |
| <!-- |
| Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel="import" href="/extras/audits/utils.html"> |
| <link rel="import" href="/core/test_utils.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tv.b.unittest.testSuite(function() { |
| function simpleMerger(events) { |
| return { |
| start: events[0].start, |
| end: events[events.length - 1].end |
| }; |
| } |
| test('simple', function() { |
| var inEvents = [ |
| {start: 0, end: 100}, |
| {start: 100, end: 120}, |
| {start: 200, end: 220} |
| ]; |
| |
| var merged = tv.e.audits.mergeEvents(inEvents, 50, simpleMerger); |
| |
| assertEquals(2, merged.length); |
| assertObjectEquals({start: 0, end: 120}, merged[0]); |
| assertObjectEquals({start: 200, end: 220}, merged[1]); |
| }); |
| |
| test('overlapping', function() { |
| var inEvents = [ |
| {start: 0, end: 100}, |
| {start: 80, end: 120}, |
| {start: 200, end: 220} |
| ]; |
| |
| var merged = tv.e.audits.mergeEvents(inEvents, 50, simpleMerger); |
| |
| assertEquals(2, merged.length); |
| assertObjectEquals({start: 0, end: 120}, merged[0]); |
| assertObjectEquals({start: 200, end: 220}, merged[1]); |
| }); |
| |
| test('middleOneIsSmall', function() { |
| var inEvents = [ |
| {start: 0, end: 100}, |
| {start: 40, end: 50}, |
| {start: 100, end: 120} |
| ]; |
| |
| var merged = tv.e.audits.mergeEvents(inEvents, 50, simpleMerger); |
| |
| assertEquals(1, merged.length); |
| assertObjectEquals({start: 0, end: 120}, merged[0]); |
| }); |
| |
| test('firstEventIsSplitPoint', function() { |
| var inEvents = [ |
| {start: 0, end: 100}, |
| {start: 150, end: 200} |
| ]; |
| |
| var merged = tv.e.audits.mergeEvents(inEvents, 25, simpleMerger); |
| |
| assertEquals(2, merged.length); |
| assertObjectEquals({start: 0, end: 100}, merged[0]); |
| assertObjectEquals({start: 150, end: 200}, merged[1]); |
| }); |
| |
| |
| }); |
| </script> |