b101a7d002
Change-Id: Ib33169c3e0ffc870915c189404074a1dea472546 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196548 Reviewed-by: Bob Nystrom <rnystrom@google.com> Commit-Queue: Leaf Petersen <leafp@google.com>
83 lines
2.1 KiB
Dart
83 lines
2.1 KiB
Dart
// 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.
|
|
|
|
// @dart = 2.9
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
// Tests that map literals are ordered.
|
|
|
|
class OrderedMapsTest {
|
|
static testMain() {
|
|
testMaps(const {"a": 1, "c": 2}, const {"c": 2, "a": 1}, true);
|
|
testMaps({"a": 1, "c": 2}, {"c": 2, "a": 1}, false);
|
|
}
|
|
|
|
static void testMaps(map1, map2, bool isConst) {
|
|
Expect.isFalse(identical(map1, map2));
|
|
|
|
var keys = map1.keys.toList();
|
|
Expect.equals(2, keys.length);
|
|
Expect.equals("a", keys[0]);
|
|
Expect.equals("c", keys[1]);
|
|
|
|
keys = map2.keys.toList();
|
|
Expect.equals(2, keys.length);
|
|
Expect.equals("c", keys[0]);
|
|
Expect.equals("a", keys[1]);
|
|
|
|
var values = map1.values.toList();
|
|
Expect.equals(2, values.length);
|
|
Expect.equals(1, values[0]);
|
|
Expect.equals(2, values[1]);
|
|
|
|
values = map2.values.toList();
|
|
Expect.equals(2, values.length);
|
|
Expect.equals(2, values[0]);
|
|
Expect.equals(1, values[1]);
|
|
|
|
if (isConst) return;
|
|
|
|
map1["b"] = 3;
|
|
map2["b"] = 3;
|
|
|
|
keys = map1.keys.toList();
|
|
Expect.equals(3, keys.length);
|
|
Expect.equals("a", keys[0]);
|
|
Expect.equals("c", keys[1]);
|
|
Expect.equals("b", keys[2]);
|
|
|
|
keys = map2.keys.toList();
|
|
Expect.equals(3, keys.length);
|
|
Expect.equals("c", keys[0]);
|
|
Expect.equals("a", keys[1]);
|
|
Expect.equals("b", keys[2]);
|
|
|
|
values = map1.values.toList();
|
|
Expect.equals(3, values.length);
|
|
Expect.equals(1, values[0]);
|
|
Expect.equals(2, values[1]);
|
|
Expect.equals(3, values[2]);
|
|
|
|
values = map2.values.toList();
|
|
Expect.equals(3, values.length);
|
|
Expect.equals(2, values[0]);
|
|
Expect.equals(1, values[1]);
|
|
Expect.equals(3, values[2]);
|
|
|
|
map1["a"] = 4;
|
|
keys = map1.keys.toList();
|
|
Expect.equals(3, keys.length);
|
|
Expect.equals("a", keys[0]);
|
|
|
|
values = map1.values.toList();
|
|
Expect.equals(3, values.length);
|
|
Expect.equals(4, values[0]);
|
|
}
|
|
}
|
|
|
|
main() {
|
|
OrderedMapsTest.testMain();
|
|
}
|