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