// 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 test program for testing while statement.

class Helper {
  static int f1(bool b) {
    while (b)
      return 1;

    return 2;
  }

  static int f2(bool b) {
    while (b) {
      return 1;
    }
    return 2;
  }

  static int f3(int n) {
    int i = 0;
    while (i < n) {
      i++;
    }
    return i;
  }
}

class WhileTest {
  static testMain() {
    Expect.equals(1, Helper.f1(true));
    Expect.equals(2, Helper.f1(false));
    Expect.equals(1, Helper.f2(true));
    Expect.equals(2, Helper.f2(false));
    Expect.equals(0, Helper.f3(-2));
    Expect.equals(0, Helper.f3(-1));
    Expect.equals(0, Helper.f3(0));
    Expect.equals(1, Helper.f3(1));
    Expect.equals(2, Helper.f3(2));
  }
}

main() {
  WhileTest.testMain();
}
