From e3482495ff4cba75613e4177ed79825c890058a9 Mon Sep 17 00:00:00 2001 From: ivahaev Date: Sat, 27 Jan 2018 02:25:43 +0500 Subject: [PATCH] Added ensureInitialized() to the Neg() method (#80) * Added ensureInitialized to the Neg() method, because it can panic when d.value is nil * TestDecimal_NegFromEmpty added --- decimal.go | 1 + decimal_test.go | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/decimal.go b/decimal.go index 5ab9f26..44bc2fb 100644 --- a/decimal.go +++ b/decimal.go @@ -278,6 +278,7 @@ func (d Decimal) Sub(d2 Decimal) Decimal { // Neg returns -d. func (d Decimal) Neg() Decimal { + d.ensureInitialized() val := new(big.Int).Neg(d.value) return Decimal{ value: val, diff --git a/decimal_test.go b/decimal_test.go index 7979218..384f8a5 100644 --- a/decimal_test.go +++ b/decimal_test.go @@ -936,6 +936,14 @@ func TestDecimal_Neg(t *testing.T) { } } +func TestDecimal_NegFromEmpty(t *testing.T) { + a := Decimal{} + b := a.Neg() + if b.String() != "0" { + t.Errorf("expected %s, got %s", "0", b) + } +} + func TestDecimal_Mul(t *testing.T) { type Inp struct { a string