103 lines
2 KiB
Go
103 lines
2 KiB
Go
package fake
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// Character generates random character in the given language
|
|
func Character() string {
|
|
return lookup(lang, "characters", true)
|
|
}
|
|
|
|
// CharactersN generates n random characters in the given language
|
|
func CharactersN(n int) string {
|
|
var chars []string
|
|
for i := 0; i < n; i++ {
|
|
chars = append(chars, Character())
|
|
}
|
|
return strings.Join(chars, "")
|
|
}
|
|
|
|
// Characters generates from 1 to 5 characters in the given language
|
|
func Characters() string {
|
|
return CharactersN(r.Intn(5) + 1)
|
|
}
|
|
|
|
// Word generates random word
|
|
func Word() string {
|
|
return lookup(lang, "words", true)
|
|
}
|
|
|
|
// WordsN generates n random words
|
|
func WordsN(n int) string {
|
|
words := make([]string, n)
|
|
for i := 0; i < n; i++ {
|
|
words[i] = Word()
|
|
}
|
|
return strings.Join(words, " ")
|
|
}
|
|
|
|
// Words generates from 1 to 5 random words
|
|
func Words() string {
|
|
return WordsN(r.Intn(5) + 1)
|
|
}
|
|
|
|
// Title generates from 2 to 5 titleized words
|
|
func Title() string {
|
|
return strings.ToTitle(WordsN(2 + r.Intn(4)))
|
|
}
|
|
|
|
// Sentence generates random sentence
|
|
func Sentence() string {
|
|
var words []string
|
|
for i := 0; i < 3+r.Intn(12); i++ {
|
|
word := Word()
|
|
if r.Intn(5) == 0 {
|
|
word += ","
|
|
}
|
|
words = append(words, Word())
|
|
}
|
|
|
|
sentence := strings.Join(words, " ")
|
|
|
|
if r.Intn(8) == 0 {
|
|
sentence += "!"
|
|
} else {
|
|
sentence += "."
|
|
}
|
|
|
|
return sentence
|
|
}
|
|
|
|
// SentencesN generates n random sentences
|
|
func SentencesN(n int) string {
|
|
sentences := make([]string, n)
|
|
for i := 0; i < n; i++ {
|
|
sentences[i] = Sentence()
|
|
}
|
|
return strings.Join(sentences, " ")
|
|
}
|
|
|
|
// Sentences generates from 1 to 5 random sentences
|
|
func Sentences() string {
|
|
return SentencesN(r.Intn(5) + 1)
|
|
}
|
|
|
|
// Paragraph generates paragraph
|
|
func Paragraph() string {
|
|
return SentencesN(r.Intn(10) + 1)
|
|
}
|
|
|
|
// ParagraphsN generates n paragraphs
|
|
func ParagraphsN(n int) string {
|
|
var paragraphs []string
|
|
for i := 0; i < n; i++ {
|
|
paragraphs = append(paragraphs, Paragraph())
|
|
}
|
|
return strings.Join(paragraphs, "\t")
|
|
}
|
|
|
|
// Paragraphs generates from 1 to 5 paragraphs
|
|
func Paragraphs() string {
|
|
return ParagraphsN(r.Intn(5) + 1)
|
|
}
|