Files
sdk/tests/corelib/bool_operator_test.dart
T
Robert Nystrom e79a142cf2 Reformat tests/corelib with the 3.8 style.
There is another batch of style changes coming out in 3.8, so I'm going
through and reformatting the SDK again. (Well, I didn't finish the
reformat the first time, so not fully "again", I guess.)

Change-Id: I83d9809fc0da71010c0ef567c208981df68c351c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/425201
Commit-Queue: Lasse Nielsen <lrn@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
2025-04-29 05:48:52 -07:00

61 lines
1.5 KiB
Dart

// Copyright (c) 2017, 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.
import "package:expect/expect.dart";
main() {
void test(bool b1, bool b2) {
var and1 = b1 && b2;
var and2 = b1 & b2;
var and3 = b1
? b2
? true
: false
: false;
var or1 = b1 || b2;
var or2 = b1 | b2;
var or3 = b1
? true
: b2
? true
: false;
var xor1 = b1 != b2;
var xor2 = b1 ^ b2;
var xor3 = b1
? b2
? false
: true
: b2
? true
: false;
var nb1 = !b1;
var nb2 = !b2;
Expect.equals(and3, and1);
Expect.equals(and3, and2);
Expect.equals(or3, or1);
Expect.equals(or3, or2);
Expect.equals(xor3, xor1);
Expect.equals(xor3, xor2);
Expect.notEquals(nb1, b1);
Expect.notEquals(nb2, b2);
}
test(true, false);
test(true, true);
test(false, true);
test(false, false);
Expect.isTrue(true || (throw "unreachable"));
Expect.throws(() => false || (throw "unreachable"));
Expect.isFalse(false && (throw "unreachable"));
Expect.throws(() => true && (throw "unreachable"));
Expect.throws(() => true | (throw "unreachable"));
Expect.throws(() => false | (throw "unreachable"));
Expect.throws(() => true & (throw "unreachable"));
Expect.throws(() => false & (throw "unreachable"));
}