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