166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Copyright (c) 2013 The Chromium Authors. All rights reserved. 266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Use of this source code is governed by a BSD-style license that can be 366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// found in the LICENSE file. 466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict'; 666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('base.iteration_helpers'); 866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('base.iteration_helpers', function() { 1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var comparePossiblyUndefinedValues = base.comparePossiblyUndefinedValues; 1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var compareArrays = base.compareArrays; 1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('comparePossiblyUndefinedValues', function() { 1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis function cmp(x, y) { 1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertNotUndefined(x); 1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertNotUndefined(y); 1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis return x - y; 1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } 1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(comparePossiblyUndefinedValues(0, 1, cmp) < 0); 2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(comparePossiblyUndefinedValues(1, 0, cmp) > 0); 2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(comparePossiblyUndefinedValues(1, 1, cmp) == 0); 2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(comparePossiblyUndefinedValues(0, undefined, cmp) < 0); 2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(comparePossiblyUndefinedValues(undefined, 0, cmp) > 0); 2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(comparePossiblyUndefinedValues(undefined, undefined, cmp) == 0); 2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('compareArrays', function() { 3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis function cmp(x, y) { 3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertNotUndefined(x); 3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertNotUndefined(y); 3366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis return x - y; 3466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } 3566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([1], [2], cmp) < 0); 3766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([2], [1], cmp) > 0); 3866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 3966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([1], [1, 2], cmp) < 0); 4066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([1, 2], [1], cmp) > 0); 4166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([], [1], cmp) < 0); 4366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([1], [], cmp) > 0); 4466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([2], [1], cmp) > 0); 4666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 4766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([], [], cmp) == 0); 4866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(compareArrays([1], [1], cmp) == 0); 4966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 5066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis}); 51