-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
Copy pathbool_operator_test.dart
63 lines (56 loc) · 1.56 KB
/
bool_operator_test.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// 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"));
}