// 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); } }