|  | // run | 
|  |  | 
|  | // Copyright 2010 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 simple arithmetic and assignment for complex numbers. | 
|  |  | 
|  | package main | 
|  |  | 
|  | const ( | 
|  | R = 5 | 
|  | I = 6i | 
|  |  | 
|  | C1 = R + I // ADD(5,6) | 
|  | ) | 
|  |  | 
|  | func main() { | 
|  | var b bool | 
|  |  | 
|  | // constants | 
|  | b = (5 + 6i) == C1 | 
|  | if !b { | 
|  | println("const bool 1", b) | 
|  | panic("fail") | 
|  | } | 
|  |  | 
|  | b = (5 + 6i) != C1 | 
|  | if b { | 
|  | println("const bool 2", b) | 
|  | panic("fail") | 
|  | } | 
|  |  | 
|  | b = C1 == (5 + 6i) | 
|  | if !b { | 
|  | println("const bool 3", b) | 
|  | panic("fail") | 
|  | } | 
|  |  | 
|  | b = C1 != (5 + 6i) | 
|  | if b { | 
|  | println("const bool 4", b) | 
|  | panic("fail") | 
|  | } | 
|  |  | 
|  | // vars passed through parameters | 
|  | booltest(5+6i, true) | 
|  | booltest(5+7i, false) | 
|  | booltest(6+6i, false) | 
|  | booltest(6+9i, false) | 
|  | } | 
|  |  | 
|  | func booltest(a complex64, r bool) { | 
|  | var b bool | 
|  |  | 
|  | b = a == C1 | 
|  | if b != r { | 
|  | println("param bool 1", a, b, r) | 
|  | panic("fail") | 
|  | } | 
|  |  | 
|  | b = a != C1 | 
|  | if b == r { | 
|  | println("param bool 2", a, b, r) | 
|  | panic("fail") | 
|  | } | 
|  |  | 
|  | b = C1 == a | 
|  | if b != r { | 
|  | println("param bool 3", a, b, r) | 
|  | panic("fail") | 
|  | } | 
|  |  | 
|  | b = C1 != a | 
|  | if b == r { | 
|  | println("param bool 4", a, b, r) | 
|  | panic("fail") | 
|  | } | 
|  |  | 
|  | if r { | 
|  | if a != C1 { | 
|  | println("param bool 5", a, b, r) | 
|  | panic("fail") | 
|  | } | 
|  | if C1 != a { | 
|  | println("param bool 6", a, b, r) | 
|  | panic("fail") | 
|  | } | 
|  | } else { | 
|  | if a == C1 { | 
|  | println("param bool 6", a, b, r) | 
|  | panic("fail") | 
|  | } | 
|  | if C1 == a { | 
|  | println("param bool 7", a, b, r) | 
|  | panic("fail") | 
|  | } | 
|  | } | 
|  | } |