Skip to content

Commit

Permalink
Add sentence function
Browse files Browse the repository at this point in the history
  • Loading branch information
sepisoltani committed May 1, 2024
1 parent 916e9d6 commit b4892a7
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 14 deletions.
37 changes: 23 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,97 +28,106 @@ import persianfaker "github.com/sepisoltani/persian-faker"
### Creating a Data Generator

```go
var generator = persianfaker.New()
var faker = persianfaker.New()
```

### Name Provider

* Generate a random Persian first name:

```go
var firstName = generator.Name.FirstName()
var firstName = faker.Name.FirstName()
```

* Generate a random Persian last name:

```go
var lastName = generator.Name.LastName()
var lastName = faker.Name.LastName()
```

* Generate a random Persian full name:

```go
var fullName = generator.Name.FullName()
var fullName = faker.Name.FullName()
```


### Text Provider

* Generate a random Persian sentence:

```go
var sentence = faker.Text.Sentence()
```

### Phone Number Provider

* Generate a random Persian mobile number:

```go
var phoneNumber = generator.PhoneNumber.PhoneNumber()
var phoneNumber = faker.PhoneNumber.PhoneNumber()
```

### Location Provider

* Generate a random province:

```go
var province = generator.Location.Province()
var province = faker.Location.Province()
```

* Generate a random city:

```go
var city = generator.Location.City()
var city = faker.Location.City()
```

* Generate a random country:

```go
var country = generator.Location.Country()
var country = faker.Location.Country()
```

* Generate a random address:

```go
var address = generator.Location.Address()
var address = faker.Location.Address()
```

### Bank Provider

* Generate a random Persian bank name:

```go
var bankName = generator.Bank.BankName()
var bankName = faker.Bank.BankName()
```

* Generate a random Persian bank IBAN:

```go
var iban = generator.Bank.IBAN()
var iban = faker.Bank.IBAN()
```

* Generate a random bank card number:

```go
var cardNumber = generator.Bank.CardNumber()
var cardNumber = faker.Bank.CardNumber()
```

### Digit Provider

* Generate a Persian digit:

```go
var digit = generator.Digit.Digit()
var digit = faker.Digit.Digit()
```

### Bill Provider

* Generate a random bill type:

```go
var billType = generator.Bill.BillType()
var billType = faker.Bill.BillType()
```

## Contributing
Expand Down
File renamed without changes.
File renamed without changes.
37 changes: 37 additions & 0 deletions providers/text/text.go
Original file line number Diff line number Diff line change
@@ -1 +1,38 @@
package text

import (
"math/rand"
"time"
)

var rng = rand.New(rand.NewSource(time.Now().UnixNano()))

type Text struct {
}

var exampleSentences = []string{
"زبان رسمی ایران فارسی است.",
"شیر نماد ملی ایران است و در بسیاری از هنرها و معماری‌ها دیده می‌شود.",

Check failure on line 15 in providers/text/text.go

View workflow job for this annotation

GitHub Actions / Test and Lint

ST1018: string literal contains Unicode format characters, consider using escape sequences instead (stylecheck)
"ایران دارای چهار فصل کاملاً متمایز است.",
"تخت جمشید یکی از معروف‌ترین آثار باستانی ایران است.",

Check failure on line 17 in providers/text/text.go

View workflow job for this annotation

GitHub Actions / Test and Lint

ST1018: string literal contains the Unicode format character U+200C, consider using the '\u200c' escape sequence instead (stylecheck)
"ایران یکی از بزرگترین تولیدکنندگان خاویار در جهان است.",
"کویر لوت بزرگترین کویر ایران است و به عنوان گرم‌ترین نقطه زمین شناخته شده است.",

Check failure on line 19 in providers/text/text.go

View workflow job for this annotation

GitHub Actions / Test and Lint

ST1018: string literal contains the Unicode format character U+200C, consider using the '\u200c' escape sequence instead (stylecheck)
"نوروز، که عید نو شمسی است، مهم‌ترین جشن سنتی ایرانیان است.",

Check failure on line 20 in providers/text/text.go

View workflow job for this annotation

GitHub Actions / Test and Lint

ST1018: string literal contains the Unicode format character U+200C, consider using the '\u200c' escape sequence instead (stylecheck)
"چای ایرانی بخش مهمی از فرهنگ چای در ایران است و عمدتا در زمان میان وعده‌ها نوشیده می‌شود.",

Check failure on line 21 in providers/text/text.go

View workflow job for this annotation

GitHub Actions / Test and Lint

ST1018: string literal contains Unicode format characters, consider using escape sequences instead (stylecheck)
"هفت‌سین نمادی از جشن نوروز است که شامل هفت مورد با نام‌هایی است که با 'س' شروع می‌شود.",

Check failure on line 22 in providers/text/text.go

View workflow job for this annotation

GitHub Actions / Test and Lint

ST1018: string literal contains Unicode format characters, consider using escape sequences instead (stylecheck)
"ایران یکی از قدیمی‌ترین تمدن‌ها در جهان را داراست و تاریخ آن به بیش از ۷۰۰۰ سال پیش بازمی‌گردد.",
"پل ورسک، که در سال ۱۳۱۵ خورشیدی ساخته شده، یکی از شاهکارهای مهندسی ایران است.",
"زعفران ایرانی به عنوان باکیفیت‌ترین زعفران جهان شناخته می‌شود.",
"بازار تبریز یکی از بزرگ‌ترین و قدیمی‌ترین بازارهای سرپوشیده در جهان است.",
"فیلم‌سازی در ایران به عنوان یکی از پیشروان صنعت سینما در خاورمیانه شناخته می‌شود.",
"موزه جواهرات ملی ایران شامل مجموعه‌ای از گران‌بهاترین جواهرات جهان است که بخشی از ذخایر ملی ایران به شمار می‌رود.",
"دانشگاه تهران، بزرگ‌ترین و قدیمی‌ترین دانشگاه مدرن ایران، در سال ۱۳۱۳ خورشیدی تأسیس شد.",
"غذاهای سنتی ایرانی مانند فسنجان، کباب و دیزی شهرت جهانی دارند.",
"البرز مرکزی، که شامل قله دماوند است، بلندترین نقطه در ایران و خاورمیانه محسوب می‌شود.",
"فردوسی، شاعر ایرانی، معروف به حماسه‌سرای شاهنامه، اثری که به حفظ زبان فارسی کمک شایانی کرد.",
}

// Sentence returns a random Persian sentence from the predefined list.
func (Text) Sentence() string {
return exampleSentences[rng.Intn(len(exampleSentences))]
}
27 changes: 27 additions & 0 deletions providers/text/text_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package text

import (
"testing"
)

func TestSentence(t *testing.T) {
text := &Text{}
sentence := text.Sentence()

// Check if the returned sentence is non-empty
if sentence == "" {
t.Error("Expected a non-empty string, got an empty string")
}

// Check if the returned sentence is in the predefined list
found := false
for _, s := range exampleSentences {
if s == sentence {
found = true
break
}
}
if !found {
t.Errorf("The sentence '%s' is not in the predefined list of sentences", sentence)
}
}

0 comments on commit b4892a7

Please sign in to comment.