From 0b4e3f2154c8a95a84eeeee60370b4b6d48d849a Mon Sep 17 00:00:00 2001 From: Sepehr Date: Tue, 30 Apr 2024 22:45:33 +0200 Subject: [PATCH] Refactor digit provider --- providers/digit/digit.go | 10 ++++++---- providers/digit/digit_test.go | 9 +++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/providers/digit/digit.go b/providers/digit/digit.go index 6807bca..f3bbd8f 100644 --- a/providers/digit/digit.go +++ b/providers/digit/digit.go @@ -5,13 +5,15 @@ import ( "time" ) +var rng = rand.New(rand.NewSource(time.Now().UnixNano())) + // faNums contains Persian digits. var faNums = []string{"۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"} -// PersianDigit returns a random Persian digit. -func PersianDigit() string { - src := rand.NewSource(time.Now().UnixNano()) - rng := rand.New(src) +type Digit struct { +} +// GeneratePersianDigit returns a random Persian digit. +func (Digit) GeneratePersianDigit() string { return faNums[rng.Intn(len(faNums))] } diff --git a/providers/digit/digit_test.go b/providers/digit/digit_test.go index 56a993d..eb7d382 100644 --- a/providers/digit/digit_test.go +++ b/providers/digit/digit_test.go @@ -4,9 +4,10 @@ import ( "testing" ) -// TestPersianDigit checks if the digit returned by PersianDigit is one of the valid Persian digits. -func TestPersianDigit(t *testing.T) { - digit := PersianDigit() +// TestGeneratePersianDigit checks if the digit returned by GeneratePersianDigit is one of the valid Persian digits. +func TestGeneratePersianDigit(t *testing.T) { + d := &Digit{} + digit := d.GeneratePersianDigit() found := false for _, d := range faNums { if d == digit { @@ -15,6 +16,6 @@ func TestPersianDigit(t *testing.T) { } } if !found { - t.Errorf("PersianDigit returned an invalid digit: %s", digit) + t.Errorf("GeneratePersianDigit returned an invalid digit: %s", digit) } }