1// run 2 3// Copyright 2010 The Go Authors. All rights reserved. 4// Use of this source code is governed by a BSD-style 5// license that can be found in the LICENSE file. 6 7// Test compound types made of complex numbers. 8 9package main 10 11var a [12]complex128 12var s []complex128 13var c chan complex128 14var f struct { 15 c complex128 16} 17var m map[complex128]complex128 18 19func main() { 20 // array of complex128 21 for i := 0; i < len(a); i++ { 22 a[i] = complex(float64(i), float64(-i)) 23 } 24 if a[5] != 5-5i { 25 panic(a[5]) 26 } 27 28 // slice of complex128 29 s = make([]complex128, len(a)) 30 for i := 0; i < len(s); i++ { 31 s[i] = a[i] 32 } 33 if s[5] != 5-5i { 34 panic(s[5]) 35 } 36 37 // chan 38 c = make(chan complex128) 39 go chantest(c) 40 vc := <-c 41 if vc != 5-5i { 42 panic(vc) 43 } 44 45 // pointer of complex128 46 v := a[5] 47 pv := &v 48 if *pv != 5-5i { 49 panic(*pv) 50 } 51 52 // field of complex128 53 f.c = a[5] 54 if f.c != 5-5i { 55 panic(f.c) 56 } 57 58 // map of complex128 59 m = make(map[complex128]complex128) 60 for i := 0; i < len(s); i++ { 61 m[-a[i]] = a[i] 62 } 63 if m[5i-5] != 5-5i { 64 panic(m[5i-5]) 65 } 66 vm := m[complex(-5, 5)] 67 if vm != 5-5i { 68 panic(vm) 69 } 70} 71 72func chantest(c chan complex128) { c <- a[5] } 73