| <!DOCTYPE html> |
| <html> |
| <!-- |
| Copyright (c) 2011 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. |
| --> |
| <head> |
| <title></title> |
| <script src="https://cdn.rawgit.com/google/closure-library/master/closure/goog/base.js"></script> |
| <script src="../../../../ui/webui/resources/js/cr.js"></script> |
| <script src="disjoint_range_set.js"></script> |
| <script> |
| goog.require('goog.testing.jsunit'); |
| </script> |
| </head> |
| <body> |
| <script> |
| |
| var range; |
| |
| function assertRangeEquals(ranges) { |
| assertArrayEquals( |
| ranges, range.map(function(start, end) { return [start, end]; })); |
| }; |
| |
| function setUp() { |
| range = new media.DisjointRangeSet; |
| }; |
| |
| function testAdd() { |
| range.add(1, 6); |
| assertRangeEquals([[1, 6]]); |
| range.add(-5, -3); |
| assertRangeEquals([[-5, -3], [1, 6]]); |
| }; |
| |
| function testAddAdjacent() { |
| range.add(3, 6); |
| assertRangeEquals([[3, 6]]); |
| range.add(1, 2); |
| assertRangeEquals([[1, 6]]); |
| range.add(7, 9); |
| assertRangeEquals([[1, 9]]); |
| }; |
| |
| function testAddNotQuiteAdjacent() { |
| range.add(3, 6); |
| assertRangeEquals([[3, 6]]); |
| range.add(0, 1); |
| assertRangeEquals([[0, 1], [3, 6]]); |
| range.add(8, 9); |
| assertRangeEquals([[0, 1], [3, 6], [8, 9]]); |
| }; |
| |
| function testAddOverlapping() { |
| range.add(1, 6); |
| assertRangeEquals([[1, 6]]); |
| range.add(5, 8); |
| assertRangeEquals([[1, 8]]); |
| range.add(0, 1); |
| assertRangeEquals([[0, 8]]); |
| }; |
| |
| function testMax() { |
| assertNull(range.max()); |
| range.add(1, 6); |
| assertEquals(range.max(), 6); |
| range.add(3, 8); |
| assertEquals(range.max(), 8); |
| range.remove(2, 3); |
| assertEquals(range.max(), 8); |
| range.remove(4, 10); |
| assertEquals(range.max(), 1); |
| range.remove(1, 1); |
| assertNull(range.max()); |
| }; |
| |
| function testRemove() { |
| range.add(1, 20); |
| assertRangeEquals([[1, 20]]); |
| range.remove(0, 3); |
| assertRangeEquals([[4, 20]]); |
| range.remove(18, 20); |
| assertRangeEquals([[4, 17]]); |
| range.remove(5, 16); |
| assertRangeEquals([[4, 4], [17, 17]]); |
| }; |
| |
| function testStartsEmpty() { |
| assertRangeEquals([]); |
| }; |
| |
| </script> |
| </body> |
| </html> |