blob: ab2ecc21aad7603ebb3c9c3f85a34bc54a6ca993 [file] [log] [blame]
// run
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Test basic operations on bool.
package main
type s struct {
a bool;
b bool;
}
func
main() {
var a,b bool;
a = true;
b = false;
if !a { panic(1); }
if b { panic(2); }
if !!!a { panic(3); }
if !!b { panic(4); }
a = !b;
if !a { panic(5); }
if !!!a { panic(6); }
var x *s;
x = new(s);
x.a = true;
x.b = false;
if !x.a { panic(7); }
if x.b { panic(8); }
if !!!x.a { panic(9); }
if !!x.b { panic(10); }
x.a = !x.b;
if !x.a { panic(11); }
if !!!x.a { panic(12); }
/*
* test &&
*/
a = true;
b = true;
if !(a && b) { panic(21); }
if a && !b { panic(22); }
if !a && b { panic(23); }
if !a && !b { panic(24); }
a = false;
b = true;
if !(!a && b) { panic(31); }
if !a && !b { panic(32); }
if a && b { panic(33); }
if a && !b { panic(34); }
a = true;
b = false;
if !(a && !b) { panic(41); }
if a && b { panic(41); }
if !a && !b { panic(41); }
if !a && b { panic(44); }
a = false;
b = false;
if !(!a && !b) { panic(51); }
if !a && b { panic(52); }
if a && !b { panic(53); }
if a && b { panic(54); }
/*
* test ||
*/
a = true;
b = true;
if !(a || b) { panic(61); }
if !(a || !b) { panic(62); }
if !(!a || b) { panic(63); }
if !a || !b { panic(64); }
a = false;
b = true;
if !(!a || b) { panic(71); }
if !(!a || !b) { panic(72); }
if !(a || b) { panic(73); }
if a || !b { panic(74); }
a = true;
b = false;
if !(a || !b) { panic(81); }
if !(a || b) { panic(82); }
if !(!a || !b) { panic(83); }
if !a || b { panic(84); }
a = false;
b = false;
if !(!a || !b) { panic(91); }
if !(!a || b) { panic(92); }
if !(a || !b) { panic(93); }
if a || b { panic(94); }
}