diff options
| author | Robert Griesemer <gri@golang.org> | 2015-03-13 17:24:30 -0700 |
|---|---|---|
| committer | Robert Griesemer <gri@golang.org> | 2015-03-14 00:48:53 +0000 |
| commit | 23fd374bf22aa2eea9c07076061ef8cfbc6cf3d7 (patch) | |
| tree | 13107ece1e2026dd83e99fceea9e0da36054dabb /src/math/big/floatconv_test.go | |
| parent | b10021644145d7148ced74194b0d668a4428cc15 (diff) | |
| download | go-23fd374bf22aa2eea9c07076061ef8cfbc6cf3d7.tar.xz | |
math/big: wrap Float.Cmp result in struct to prevent wrong use
Float.Cmp used to return a value < 0, 0, or > 0 depending on how
arguments x, y compared against each other. With the possibility
of NaNs, the result was changed into an Accuracy (to include Undef).
Consequently, Float.Cmp results could still be compared for (in-)
equality with 0, but comparing if < 0 or > 0 would provide the
wrong answer w/o any obvious notice by the compiler.
This change wraps Float.Cmp results into a struct and accessors
are used to access the desired result. This prevents incorrect
use.
Change-Id: I34e6a6c1859251ec99b5cf953e82542025ace56f
Reviewed-on: https://go-review.googlesource.com/7526
Reviewed-by: Rob Pike <r@golang.org>
Diffstat (limited to 'src/math/big/floatconv_test.go')
| -rw-r--r-- | src/math/big/floatconv_test.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/math/big/floatconv_test.go b/src/math/big/floatconv_test.go index e7920d0c07..17c8b14786 100644 --- a/src/math/big/floatconv_test.go +++ b/src/math/big/floatconv_test.go @@ -102,7 +102,7 @@ func TestFloatSetFloat64String(t *testing.T) { } f, _ := x.Float64() want := new(Float).SetFloat64(test.x) - if x.Cmp(want) != 0 { + if x.Cmp(want).Neq() { t.Errorf("%s: got %s (%v); want %v", test.s, &x, f, test.x) } } |
