Add Copy func (#123)

* Add Copy method
Co-authored-by: habuvo <Sin90is0>
This commit is contained in:
Ilya Glukhov 2021-10-12 03:17:36 +03:00 committed by GitHub
parent 46544472a5
commit 013e52d4e9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 3 deletions

View file

@ -1886,3 +1886,14 @@ func (d Decimal) Tan() Decimal {
}
return y
}
// Copy makes instance of d with same value and different pointer.
func (d Decimal) Copy() Decimal {
d.ensureInitialized()
return Decimal{
value: &(*d.value),
exp: d.exp,
}
}

View file

@ -3288,3 +3288,21 @@ func ExampleNewFromFloat() {
//0.123123123123123
//-10000000000000
}
//For Copy
func TestCopy(t *testing.T) {
origin := New(1, 0)
cpy := origin.Copy()
if cpy.Cmp(origin) != 0 {
t.Error("copy and origin not equal")
}
//change value
cpy = cpy.Add(New(1, 0))
if cpy.Cmp(origin) == 0 {
t.Error("copy and origin are equal but expected not")
}
}