// 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 compound types made of complex numbers. | |
package main | |
var a [12]complex128 | |
var s []complex128 | |
var c chan complex128 | |
var f struct { | |
c complex128 | |
} | |
var m map[complex128]complex128 | |
func main() { | |
// array of complex128 | |
for i := 0; i < len(a); i++ { | |
a[i] = complex(float64(i), float64(-i)) | |
} | |
if a[5] != 5-5i { | |
panic(a[5]) | |
} | |
// slice of complex128 | |
s = make([]complex128, len(a)) | |
for i := 0; i < len(s); i++ { | |
s[i] = a[i] | |
} | |
if s[5] != 5-5i { | |
panic(s[5]) | |
} | |
// chan | |
c = make(chan complex128) | |
go chantest(c) | |
vc := <-c | |
if vc != 5-5i { | |
panic(vc) | |
} | |
// pointer of complex128 | |
v := a[5] | |
pv := &v | |
if *pv != 5-5i { | |
panic(*pv) | |
} | |
// field of complex128 | |
f.c = a[5] | |
if f.c != 5-5i { | |
panic(f.c) | |
} | |
// map of complex128 | |
m = make(map[complex128]complex128) | |
for i := 0; i < len(s); i++ { | |
m[-a[i]] = a[i] | |
} | |
if m[5i-5] != 5-5i { | |
panic(m[5i-5]) | |
} | |
vm := m[complex(-5, 5)] | |
if vm != 5-5i { | |
panic(vm) | |
} | |
} | |
func chantest(c chan complex128) { c <- a[5] } |