dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 0963111caa684efd87c0cecca1b37484981050c0
parent 9af2387f34a0a08fc30549286900ed641c0a29b4
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri, 16 Jun 2023 21:30:43 -0700

Add DoParseInt64OrDefault utils function

Diffstat:
Mpkg/utils/utils.go | 10++++++++++
Apkg/utils/utils_test.go | 28++++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go @@ -123,6 +123,16 @@ func DoParseInt64(v string) (out int64) { return } +// DoParseInt64OrDefault ... +func DoParseInt64OrDefault(v string, d int64) (out int64) { + var err error + out, err = ParseInt64(v) + if err != nil { + out = d + } + return +} + // ParseF64 ... func ParseF64(v string) (float64, error) { return strconv.ParseFloat(v, 64) diff --git a/pkg/utils/utils_test.go b/pkg/utils/utils_test.go @@ -0,0 +1,28 @@ +package utils + +import "testing" + +func TestDoParseInt64OrDefault(t *testing.T) { + type args struct { + v string + d int64 + } + tests := []struct { + name string + args args + wantOut int64 + }{ + {name: "", args: args{v: "", d: 10}, wantOut: 10}, + {name: "", args: args{v: "0", d: 10}, wantOut: 0}, + {name: "", args: args{v: "-1", d: 10}, wantOut: -1}, + {name: "", args: args{v: "1", d: 10}, wantOut: 1}, + {name: "", args: args{v: "a", d: 10}, wantOut: 10}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if gotOut := DoParseInt64OrDefault(tt.args.v, tt.args.d); gotOut != tt.wantOut { + t.Errorf("DoParseInt64OrDefault() = %v, want %v", gotOut, tt.wantOut) + } + }) + } +}