// 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 Execution of an if statement of the form if (b) s1 else s2
 * proceeds as follows:
 * . . .
 * If r is true, then the statement {s1} is executed, otherwise statement {s2}
 * is executed.
 * @description Checks that if the expression b evaluates to an object o that
 * converts to the boolean true, then the statement s1 is executed.
 * Boolean true constant is tested as well as various comparison expressions.
 * @author vasya
 */
import '../../../Utils/expect.dart';

main() {
  var i = 0;
  if (true) {
    i = 1;
  } else {
    i = 2;
  }
  Expect.equals(1, i);

  i = 0;
  if ( 2 > -1 ) {
    i = 1;
  } else {
    i = 2;
  }
  Expect.equals(1, i);

  i = 0;
  if ( "str".length > 0 ) {
    i = 1;
  } else {
    i = 2;
  }
  Expect.equals(1, i);

  i = 0;
  if ( [].length == 0 ) {
    i = 1;
  } else {
    i = 2;
  }
  Expect.equals(1, i);
}
