| // 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. |
| |
| /// @assertion E first |
| /// Returns the first element. |
| /// Throws a StateError if this is empty. Otherwise returs the first element |
| /// in the iteration order, equivalent to (iterator..moveNext())..current. |
| /// @description Checks that the first element of the list is returned. |
| /// @author kaigorodov |
| /// @author sgrekhov@unipro.ru |
| |
| library first_A01_t02; |
| import "../../../Utils/expect.dart"; |
| |
| test(Iterable create([Iterable content]), {bool isSet: false}) { |
| const head = -1; |
| Iterable a = create(); |
| Expect.equals(0, a.length); |
| a = create([head]); |
| Expect.equals(head, a.first); |
| if (!isSet) { |
| a = create([head, 1]); |
| Expect.equals(head, a.first); |
| |
| List b = new List.filled(1000, null); |
| b[0] = head; |
| b[999] = "top"; |
| a = create(b); |
| Expect.equals(head, a.first); |
| |
| a = create([-2, 0, "0", false, -1]); |
| Expect.equals(-2, a.first); |
| |
| a = create([0, null, "0", false]); |
| Expect.equals(0, a.first); |
| } else { |
| // Set may be unordered so the first element is unpredictable |
| // just test that something is returned |
| a = create([head, 1]); |
| Expect.isNotNull(a.first); |
| |
| a = create([-2, 0, 0, false, -1]); |
| Expect.isNotNull(a.first); |
| |
| a = create([0, 0.5, 0, false]); |
| Expect.isNotNull(a.first); |
| } |
| } |