diff options
Diffstat (limited to 'test/ken/cplx5.go')
-rw-r--r-- | test/ken/cplx5.go | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/test/ken/cplx5.go b/test/ken/cplx5.go new file mode 100644 index 0000000..4e8f443 --- /dev/null +++ b/test/ken/cplx5.go @@ -0,0 +1,72 @@ +// 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] } |