// $G $D/$F.go $D/cmplxdivide1.go && $L $D/$F.$A && ./$A.out // 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. // Driver for complex division table defined in cmplxdivide1.go package main import ( "cmath" "fmt" "math" ) type Test struct{ f, g complex128 out complex128 } var nan = math.NaN() var inf = math.Inf(1) var negzero = math.Copysign(0, -1) func calike(a, b complex128) bool { switch { case cmath.IsInf(a) && cmath.IsInf(b): return true case cmath.IsNaN(a) && cmath.IsNaN(b): return true } return a == b } func main() { for _, t := range tests { x := t.f/t.g if !calike(x, t.out) { fmt.Printf("%v/%v: expected %v error; got %v\n", t.f, t.g, t.out, x) } } }