|  | // 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] } |