dart-sdk/tests/language_2/map_literal5_test.dart
Ben Konyi 876bb0c494 Migrated test block 130 to Dart 2.0.
Slightly tricky block. Many map_literal* tests were modified as they were creating maps with
multiple instances of the same key.

Bug:
Change-Id: I5dcaa458ee8f68a4934950bb32229ff92100149b
Reviewed-on: https://dart-review.googlesource.com/9064
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2017-09-29 04:24:02 +00:00

44 lines
1 KiB
Dart

// Copyright (c) 2013, 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.
// Test the use of general expression as keys in map literals.
library map_literal5_test;
import "package:expect/expect.dart";
void main() {
test(true);
test(false);
}
void test(bool b) {
var m = create(b);
Expect.equals(b, m.containsKey(true));
Expect.equals(b, m.containsKey(2));
Expect.equals(b, m.containsKey(1));
Expect.equals(!b, m.containsKey(false));
Expect.equals(!b, m.containsKey("bar"));
Expect.equals(!b, m.containsKey("foo"));
if (b) {
Expect.equals(0, m[true]);
Expect.equals(3, m[2]);
Expect.equals(2, m[1]);
} else {
Expect.equals(0, m[false]);
Expect.equals("baz", m["bar"]);
Expect.equals(2, m["foo"]);
}
}
Map create(bool b) {
return {
b: 0,
m(b): n(b),
b ? 1 : "foo": 2,
};
}
Object m(bool b) => b ? 2 : "bar";
Object n(bool b) => b ? 3 : "baz";