// 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.
// Test program for array literals.

class ListLiteralTest {

  static final LAUREL = 1;
  static final HARDY  = 2;

  static testMain() {

    var funny = <int>[LAUREL, HARDY, ];  // Check that trailing comma works.
    Expect.equals(2, funny.length);

    List<int> m = <int>[101, 102, 100 + 3];
    Expect.equals(3, m.length);
    Expect.equals(101, m[0]);
    Expect.equals(103, m[2]);

    var d = m[2] - m[1];
    Expect.equals(1, d);

    var e2 = [5.1, -55, 555, 5555][2];
    Expect.equals(555, e2);

    e2 = <num>[5.1, -55, 555, 5555][2];
    Expect.equals(555, e2);

    e2 = const <num>[5.1, -55, 555, 5555][2];
    Expect.equals(555, e2);

    e2 = const [5.1, const <num>[-55, 555], 5555][1][1];
    Expect.equals(555, e2);

    Expect.equals(0, [].length);
    Expect.equals(0, <String>[].length);
    Expect.equals(0, const <String>[].length);
    Expect.equals(0, const [].length);
  }
}

main() {
  ListLiteralTest.testMain();
}
