1
0
mirror of https://github.com/golang/go synced 2024-11-23 16:40:03 -07:00

math/big: add test cases for Float.Abs and Float.Neg

Change-Id: Ic5f3864bc6d94d60b754e3ccf72b1d40c5c09117
Reviewed-on: https://go-review.googlesource.com/4510
Reviewed-by: Rob Pike <r@golang.org>
Reviewed-by: Alan Donovan <adonovan@google.com>
This commit is contained in:
Robert Griesemer 2015-02-10 14:51:16 -08:00
parent 64e7038291
commit 15fe15a198

View File

@ -593,6 +593,53 @@ func TestFloatRat(t *testing.T) {
// TODO(gri) implement this
}
func TestFloatAbs(t *testing.T) {
for _, test := range []string{
"0",
"1",
"1234",
"1.23e-2",
"1e-1000",
"1e1000",
"Inf",
} {
p := makeFloat(test)
a := new(Float).Abs(p)
if !feq(a, p) {
t.Errorf("%s: got %s; want %s", test, a.Format('g', 10), test)
}
n := makeFloat("-" + test)
a.Abs(n)
if !feq(a, p) {
t.Errorf("-%s: got %s; want %s", test, a.Format('g', 10), test)
}
}
}
func TestFloatNeg(t *testing.T) {
for _, test := range []string{
"0",
"1",
"1234",
"1.23e-2",
"1e-1000",
"1e1000",
"Inf",
} {
p1 := makeFloat(test)
n1 := makeFloat("-" + test)
n2 := new(Float).Neg(p1)
p2 := new(Float).Neg(n2)
if !feq(n2, n1) {
t.Errorf("%s: got %s; want %s", test, n2.Format('g', 10), n1.Format('g', 10))
}
if !feq(p2, p1) {
t.Errorf("%s: got %s; want %s", test, p2.Format('g', 10), p1.Format('g', 10))
}
}
}
// Selected precisions with which to run various tests.
var precList = [...]uint{1, 2, 5, 8, 10, 16, 23, 24, 32, 50, 53, 64, 100, 128, 500, 511, 512, 513, 1000, 10000}