Skip to content

Commit 42d2a4b

Browse files
committed
✨ add new words
1 parent 4b98033 commit 42d2a4b

File tree

2 files changed

+216
-11
lines changed

2 files changed

+216
-11
lines changed

gachinate.go

+32-11
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,39 @@ type langConfig struct {
2020

2121
var (
2222
RussianConfig = langConfig{
23-
re: regexp.MustCompile(`([эЭ]с)|(о)|([кК][ао]м)|([фФ]ак)|(т[её]мн(ый|ое|ая|о|ые|ых))|(гей)|(глубок(ий|ое|ая|о|и|ие|ого))|(доллар(ов|ы))`),
23+
re: regexp.MustCompile(`` +
24+
`([эЭ]с)` +
25+
`|(онал)` +
26+
`|([кК][ао]м)` +
27+
`|([фФ]ак)` +
28+
`|([тТ][её]мн(?:ый|ое|ая|о|ые|ых))` +
29+
`|([гГ]ей)` +
30+
`|([гГ]лубок(?:ий|ое|ая|о|и|ие|ого)?)` +
31+
`|([дД]оллар(?:ов|ы)?)` +
32+
`|([фФ]антази[яйи])` +
33+
`|([гГ]лот(?:ает|ать|ай|ок))` +
34+
`|([мМ]астер(?:а|ы|ов)?)` +
35+
`|([пП]одзем(?:ный|ное|ная|ные|ных|ного|елье|елья))` +
36+
`|([бБ]ой|[мМ]альчик(?:а|и|ов)?|[пП]арен(?:ь|[её]к))` +
37+
`|(?:^|\s)([сС]луг[аиеу])` +
38+
`|(о)`,
39+
),
2440
replacers: map[int][]byte{
25-
0: []byte("ASS"),
26-
1: []byte("♂"),
27-
2: []byte("CUM"),
28-
3: []byte("FUCK"),
29-
4: []byte("DARK"),
30-
// 5: useless suffixes group
31-
6: []byte("GAY"),
32-
7: []byte("DEEP"),
33-
// 8: useless suffixes group
34-
9: []byte("BUCKS"),
41+
0: []byte("ASS"),
42+
1: []byte("ANAL"),
43+
2: []byte("CUM"),
44+
3: []byte("FUCK"),
45+
4: []byte("DARK"),
46+
5: []byte("GAY"),
47+
6: []byte("DEEP"),
48+
7: []byte("BUCKS"),
49+
8: []byte("FANTASY"),
50+
9: []byte("SWALL♂W"),
51+
10: []byte("MASTER"),
52+
11: []byte("DUNGE♂N"),
53+
12: []byte("B♂Y"),
54+
13: []byte("SLAVE"),
55+
14: []byte("♂"),
3556
},
3657
}
3758
EnglishConfig = langConfig{

gachinate_test.go

+184
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ func TestGachinateRu(t *testing.T) {
7373
input: "глубокая кроличья нора",
7474
expectedOutput: "DEEP кр♂личья н♂ра",
7575
},
76+
{
77+
input: "доллар",
78+
expectedOutput: "BUCKS",
79+
},
7680
{
7781
input: "доллары",
7882
expectedOutput: "BUCKS",
@@ -81,6 +85,186 @@ func TestGachinateRu(t *testing.T) {
8185
input: "долларов",
8286
expectedOutput: "BUCKS",
8387
},
88+
{
89+
input: "фантазия",
90+
expectedOutput: "FANTASY",
91+
},
92+
{
93+
input: "фантазии",
94+
expectedOutput: "FANTASY",
95+
},
96+
{
97+
input: "Фантазий ",
98+
expectedOutput: "FANTASY ",
99+
},
100+
{
101+
input: "глотает",
102+
expectedOutput: "SWALL♂W",
103+
},
104+
{
105+
input: "глотать",
106+
expectedOutput: "SWALL♂W",
107+
},
108+
{
109+
input: "глотай",
110+
expectedOutput: "SWALL♂W",
111+
},
112+
{
113+
input: "глоток",
114+
expectedOutput: "SWALL♂W",
115+
},
116+
{
117+
input: "мастер",
118+
expectedOutput: "MASTER",
119+
},
120+
{
121+
input: "мастера",
122+
expectedOutput: "MASTER",
123+
},
124+
{
125+
input: "мастеры",
126+
expectedOutput: "MASTER",
127+
},
128+
{
129+
input: "мастеров",
130+
expectedOutput: "MASTER",
131+
},
132+
{
133+
input: "пр♂фессионал",
134+
expectedOutput: "пр♂фессиANAL",
135+
},
136+
{
137+
input: "пр♂фессионала",
138+
expectedOutput: "пр♂фессиANALа",
139+
},
140+
{
141+
input: "пр♂фессионалов",
142+
expectedOutput: "пр♂фессиANAL♂в",
143+
},
144+
{
145+
input: "пр♂фессионалы",
146+
expectedOutput: "пр♂фессиANALы",
147+
},
148+
{
149+
input: "национальный",
150+
expectedOutput: "нациANALьный",
151+
},
152+
{
153+
input: "национальная",
154+
expectedOutput: "нациANALьная",
155+
},
156+
{
157+
input: "национальное",
158+
expectedOutput: "нациANALьн♂е",
159+
},
160+
{
161+
input: "национальных",
162+
expectedOutput: "нациANALьных",
163+
},
164+
{
165+
input: "национального",
166+
expectedOutput: "нациANALьн♂г♂",
167+
},
168+
{
169+
input: "подземный",
170+
expectedOutput: "DUNGE♂N",
171+
},
172+
{
173+
input: "Подземное",
174+
expectedOutput: "DUNGE♂N",
175+
},
176+
{
177+
input: "подземная",
178+
expectedOutput: "DUNGE♂N",
179+
},
180+
{
181+
input: "подземные",
182+
expectedOutput: "DUNGE♂N",
183+
},
184+
{
185+
input: "подземного",
186+
expectedOutput: "DUNGE♂N",
187+
},
188+
{
189+
input: "подземных",
190+
expectedOutput: "DUNGE♂N",
191+
},
192+
{
193+
input: "подземелье",
194+
expectedOutput: "DUNGE♂N",
195+
},
196+
{
197+
input: "подземелья",
198+
expectedOutput: "DUNGE♂N",
199+
},
200+
{
201+
input: "голубой",
202+
expectedOutput: "г♂луB♂Y",
203+
},
204+
{
205+
input: "голубых",
206+
expectedOutput: "г♂лубых",
207+
},
208+
{
209+
input: "мальчик",
210+
expectedOutput: "B♂Y",
211+
},
212+
{
213+
input: "мальчика",
214+
expectedOutput: "B♂Y",
215+
},
216+
{
217+
input: "мальчики",
218+
expectedOutput: "B♂Y",
219+
},
220+
{
221+
input: "мальчиков",
222+
expectedOutput: "B♂Y",
223+
},
224+
{
225+
input: "Бойлер",
226+
expectedOutput: "B♂Yлер",
227+
},
228+
{
229+
input: "парень",
230+
expectedOutput: "B♂Y",
231+
},
232+
{
233+
input: "Паренек",
234+
expectedOutput: "B♂Y",
235+
},
236+
{
237+
input: "паренёк",
238+
expectedOutput: "B♂Y",
239+
},
240+
{
241+
input: "отбойник",
242+
expectedOutput: "♂тB♂Yник",
243+
},
244+
{
245+
input: "слуга",
246+
expectedOutput: "SLAVE",
247+
},
248+
{
249+
input: "слуги",
250+
expectedOutput: "SLAVE",
251+
},
252+
{
253+
input: "Слуге не хватило места",
254+
expectedOutput: "SLAVE не хватил♂ места",
255+
},
256+
{
257+
input: "поддержать слугу народа",
258+
expectedOutput: "п♂ддержать SLAVE нар♂да",
259+
},
260+
{
261+
input: "обычная услуга",
262+
expectedOutput: "♂бычная услуга",
263+
},
264+
{
265+
input: "колодец достаточно глубок",
266+
expectedOutput: "к♂л♂дец д♂стат♂чн♂ DEEP",
267+
},
84268
}
85269

86270
for _, c := range cases {

0 commit comments

Comments
 (0)