| // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file | 
 | // for details. All rights reserved. Use of this source code is governed by a | 
 | // BSD-style license that can be found in the LICENSE file. | 
 |  | 
 | import "package:expect/expect.dart"; | 
 | import 'dart:collection'; | 
 |  | 
 | main() { | 
 |   positiveTest(); | 
 |   emptyMapTest(); | 
 |   fewerKeysIterableTest(); | 
 |   fewerValuesIterableTest(); | 
 |   equalElementsTest(); | 
 |   genericTypeTest(); | 
 | } | 
 |  | 
 | void positiveTest() { | 
 |   var map = new SplayTreeMap.fromIterables([1, 2, 3], ["one", "two", "three"]); | 
 |  | 
 |   Expect.isTrue(map is Map); | 
 |   Expect.isTrue(map is SplayTreeMap); | 
 |   Expect.isFalse(map is HashMap); | 
 |  | 
 |   Expect.equals(3, map.length); | 
 |   Expect.equals(3, map.keys.length); | 
 |   Expect.equals(3, map.values.length); | 
 |  | 
 |   Expect.equals("one", map[1]); | 
 |   Expect.equals("two", map[2]); | 
 |   Expect.equals("three", map[3]); | 
 | } | 
 |  | 
 | void emptyMapTest() { | 
 |   var map = new SplayTreeMap.fromIterables([], []); | 
 |  | 
 |   Expect.isTrue(map is Map); | 
 |   Expect.isTrue(map is SplayTreeMap); | 
 |   Expect.isFalse(map is HashMap); | 
 |  | 
 |   Expect.equals(0, map.length); | 
 |   Expect.equals(0, map.keys.length); | 
 |   Expect.equals(0, map.values.length); | 
 | } | 
 |  | 
 | void fewerValuesIterableTest() { | 
 |   Expect.throws(() => new SplayTreeMap.fromIterables([1, 2], [0])); | 
 | } | 
 |  | 
 | void fewerKeysIterableTest() { | 
 |   Expect.throws(() => new SplayTreeMap.fromIterables([1], [0, 2])); | 
 | } | 
 |  | 
 | void equalElementsTest() { | 
 |   var map = new SplayTreeMap.fromIterables([1, 2, 2], ["one", "two", "three"]); | 
 |  | 
 |   Expect.isTrue(map is Map); | 
 |   Expect.isTrue(map is SplayTreeMap); | 
 |   Expect.isFalse(map is HashMap); | 
 |  | 
 |   Expect.equals(2, map.length); | 
 |   Expect.equals(2, map.keys.length); | 
 |   Expect.equals(2, map.values.length); | 
 |  | 
 |   Expect.equals("one", map[1]); | 
 |   Expect.equals("three", map[2]); | 
 | } | 
 |  | 
 | void genericTypeTest() { | 
 |   var map = new SplayTreeMap<int, String>.fromIterables( | 
 |       [1, 2, 3], ["one", "two", "three"]); | 
 |   Expect.isTrue(map is Map<int, String>); | 
 |   Expect.isTrue(map is SplayTreeMap<int, String>); | 
 |  | 
 |   // Make sure it is not just SplayTreeMap<dynamic, dynamic>. | 
 |   Expect.isFalse(map is SplayTreeMap<String, dynamic>); | 
 |   Expect.isFalse(map is SplayTreeMap<dynamic, int>); | 
 |  | 
 |   Expect.equals(3, map.length); | 
 |   Expect.equals(3, map.keys.length); | 
 |   Expect.equals(3, map.values.length); | 
 |  | 
 |   Expect.equals("one", map[1]); | 
 |   Expect.equals("two", map[2]); | 
 |   Expect.equals("three", map[3]); | 
 | } |