1package fake
2
3import (
4 "strings"
5)
6
7// Character generates random character in the given language
8func Character() string {
9 return lookup(lang, "characters", true)
10}
11
12// CharactersN generates n random characters in the given language
13func CharactersN(n int) string {
14 var chars []string
15 for i := 0; i < n; i++ {
16 chars = append(chars, Character())
17 }
18 return strings.Join(chars, "")
19}
20
21// Characters generates from 1 to 5 characters in the given language
22func Characters() string {
23 return CharactersN(r.Intn(5) + 1)
24}
25
26// Word generates random word
27func Word() string {
28 return lookup(lang, "words", true)
29}
30
31// WordsN generates n random words
32func WordsN(n int) string {
33 words := make([]string, n)
34 for i := 0; i < n; i++ {
35 words[i] = Word()
36 }
37 return strings.Join(words, " ")
38}
39
40// Words generates from 1 to 5 random words
41func Words() string {
42 return WordsN(r.Intn(5) + 1)
43}
44
45// Title generates from 2 to 5 titleized words
46func Title() string {
47 return strings.ToTitle(WordsN(2 + r.Intn(4)))
48}
49
50// Sentence generates random sentence
51func Sentence() string {
52 var words []string
53 for i := 0; i < 3+r.Intn(12); i++ {
54 word := Word()
55 if r.Intn(5) == 0 {
56 word += ","
57 }
58 words = append(words, Word())
59 }
60
61 sentence := strings.Join(words, " ")
62
63 if r.Intn(8) == 0 {
64 sentence += "!"
65 } else {
66 sentence += "."
67 }
68
69 return sentence
70}
71
72// SentencesN generates n random sentences
73func SentencesN(n int) string {
74 sentences := make([]string, n)
75 for i := 0; i < n; i++ {
76 sentences[i] = Sentence()
77 }
78 return strings.Join(sentences, " ")
79}
80
81// Sentences generates from 1 to 5 random sentences
82func Sentences() string {
83 return SentencesN(r.Intn(5) + 1)
84}
85
86// Paragraph generates paragraph
87func Paragraph() string {
88 return SentencesN(r.Intn(10) + 1)
89}
90
91// ParagraphsN generates n paragraphs
92func ParagraphsN(n int) string {
93 var paragraphs []string
94 for i := 0; i < n; i++ {
95 paragraphs = append(paragraphs, Paragraph())
96 }
97 return strings.Join(paragraphs, "\t")
98}
99
100// Paragraphs generates from 1 to 5 paragraphs
101func Paragraphs() string {
102 return ParagraphsN(r.Intn(5) + 1)
103}