| // 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 Evaluation of a logical boolean expression b of the form e1 || e2 |
| /// causes the evaluation of e1 which is then subjected to boolean conversion, |
| /// yielding an object o1; if e1 evaluates to true, the result of evaluating b |
| /// is true, otherwise e2 is evaluated to an object o2, which is then subjected |
| /// to boolean conversion producing an object r, which is the value of b. |
| /// @description Checks that an expression of the form e1 || e2 is evaluated |
| /// correctly. |
| /// @author msyabro |
| |
| import '../../../Utils/expect.dart'; |
| |
| int counterF = 0; |
| int counterT = 0; |
| |
| bool getFalse() { |
| counterF++; |
| return false; |
| } |
| |
| bool getTrue() { |
| counterT++; |
| return true; |
| } |
| |
| main() { |
| Expect.isTrue(true || true); |
| Expect.isTrue(true || false); |
| Expect.isTrue(false || true); |
| Expect.isFalse(false || false); |
| |
| Expect.isTrue(getTrue() || getTrue()); |
| Expect.equals(1, counterT); |
| Expect.isTrue(getFalse() || getTrue()); |
| Expect.equals(1, counterF); |
| Expect.equals(2, counterT); |
| } |