Home | History | Annotate | Download | only in ken
      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 }
    108