modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/ken/simpbool.go (about) 1 // run 2 3 // Copyright 2009 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 // Test basic operations on bool. 8 9 package main 10 11 type s struct { 12 a bool; 13 b bool; 14 } 15 16 func 17 main() { 18 var a,b bool; 19 20 a = true; 21 b = false; 22 23 if !a { panic(1); } 24 if b { panic(2); } 25 if !!!a { panic(3); } 26 if !!b { panic(4); } 27 28 a = !b; 29 if !a { panic(5); } 30 if !!!a { panic(6); } 31 32 var x *s; 33 x = new(s); 34 x.a = true; 35 x.b = false; 36 37 if !x.a { panic(7); } 38 if x.b { panic(8); } 39 if !!!x.a { panic(9); } 40 if !!x.b { panic(10); } 41 42 x.a = !x.b; 43 if !x.a { panic(11); } 44 if !!!x.a { panic(12); } 45 46 /* 47 * test && 48 */ 49 a = true; 50 b = true; 51 if !(a && b) { panic(21); } 52 if a && !b { panic(22); } 53 if !a && b { panic(23); } 54 if !a && !b { panic(24); } 55 56 a = false; 57 b = true; 58 if !(!a && b) { panic(31); } 59 if !a && !b { panic(32); } 60 if a && b { panic(33); } 61 if a && !b { panic(34); } 62 63 a = true; 64 b = false; 65 if !(a && !b) { panic(41); } 66 if a && b { panic(41); } 67 if !a && !b { panic(41); } 68 if !a && b { panic(44); } 69 70 a = false; 71 b = false; 72 if !(!a && !b) { panic(51); } 73 if !a && b { panic(52); } 74 if a && !b { panic(53); } 75 if a && b { panic(54); } 76 77 /* 78 * test || 79 */ 80 a = true; 81 b = true; 82 if !(a || b) { panic(61); } 83 if !(a || !b) { panic(62); } 84 if !(!a || b) { panic(63); } 85 if !a || !b { panic(64); } 86 87 a = false; 88 b = true; 89 if !(!a || b) { panic(71); } 90 if !(!a || !b) { panic(72); } 91 if !(a || b) { panic(73); } 92 if a || !b { panic(74); } 93 94 a = true; 95 b = false; 96 if !(a || !b) { panic(81); } 97 if !(a || b) { panic(82); } 98 if !(!a || !b) { panic(83); } 99 if !a || b { panic(84); } 100 101 a = false; 102 b = false; 103 if !(!a || !b) { panic(91); } 104 if !(!a || b) { panic(92); } 105 if !(a || !b) { panic(93); } 106 if a || b { panic(94); } 107 }