Commit 15fe15a1 authored by Robert Griesemer's avatar Robert Griesemer

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

Change-Id: Ic5f3864bc6d94d60b754e3ccf72b1d40c5c09117
Reviewed-on: https://go-review.googlesource.com/4510Reviewed-by: 's avatarRob Pike <r@golang.org>
Reviewed-by: 's avatarAlan Donovan <adonovan@google.com>
parent 64e70382
......@@ -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}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment