mirror of
https://github.com/golang/go
synced 2024-09-05 16:04:50 +00:00
100 lines
1.4 KiB
Go
100 lines
1.4 KiB
Go
// 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")
|
|
}
|
|
}
|
|
}
|