]> Cypherpunks.ru repositories - gostls13.git/blobdiff - test/cmplxdivide.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / cmplxdivide.go
index 6a67b175de1eee9f2e959d40c97bce45c4b4dba2..49cd5bf5824755e8696586d2d950956192909192 100644 (file)
@@ -1,42 +1,35 @@
-// $G $D/$F.go $D/cmplxdivide1.go && $L $D/$F.$A && ./$A.out
+// run cmplxdivide1.go
 
-// Copyright 2010 The Go Authors.  All rights reserved.
+// 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
+// For details, see the comment at the top of cmplxdivide.c.
 
 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
+       if imag(a) != imag(b) && !(math.IsNaN(imag(a)) && math.IsNaN(imag(b))) {
+               return false
        }
-       return a == b
+
+       if real(a) != real(b) && !(math.IsNaN(real(a)) && math.IsNaN(real(b))) {
+               return false
+       }
+
+       return true
 }
 
 func main() {
        bad := false
        for _, t := range tests {
-               x := t.f/t.g
+               x := t.f / t.g
                if !calike(x, t.out) {
                        if !bad {
                                fmt.Printf("BUG\n")
@@ -45,4 +38,7 @@ func main() {
                        fmt.Printf("%v/%v: expected %v error; got %v\n", t.f, t.g, t.out, x)
                }
        }
+       if bad {
+               panic("cmplxdivide failed.")
+       }
 }