Conditions | 4 |
Total Lines | 121 |
Code Lines | 115 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | package timeago |
||
251 | func TestTake_with_online_flag(t *testing.T) { |
||
252 | cases := []struct { |
||
253 | date string |
||
254 | result string |
||
255 | lang string |
||
256 | }{ |
||
257 | // english |
||
258 | {smallSubTime(time.Second * 2), "Online", "en"}, |
||
259 | {smallSubTime(time.Second), "Online", "en"}, |
||
260 | {smallSubTime(-1 * time.Second), "Online", "en"}, |
||
261 | {smallSubTime(-2 * time.Second), "Online", "en"}, |
||
262 | {smallSubTime(-9 * time.Second), "Online", "en"}, |
||
263 | {smallSubTime(-10 * time.Second), "Online", "en"}, |
||
264 | {smallSubTime(-11 * time.Second), "Online", "en"}, |
||
265 | {smallSubTime(-20 * time.Second), "Online", "en"}, |
||
266 | {smallSubTime(-21 * time.Second), "Online", "en"}, |
||
267 | {smallSubTime(-22 * time.Second), "Online", "en"}, |
||
268 | {smallSubTime(-30 * time.Second), "Online", "en"}, |
||
269 | {smallSubTime(-31 * time.Second), "Online", "en"}, |
||
270 | {smallSubTime(-59 * time.Second), "Online", "en"}, |
||
271 | {smallSubTime(-60 * time.Second), "1 minute ago", "en"}, |
||
272 | {smallSubTime(-1 * time.Minute), "1 minute ago", "en"}, |
||
273 | {smallSubTime(-2 * time.Minute), "2 minutes ago", "en"}, |
||
274 | {smallSubTime(-9 * time.Minute), "9 minutes ago", "en"}, |
||
275 | {smallSubTime(-10 * time.Minute), "10 minutes ago", "en"}, |
||
276 | {smallSubTime(-11 * time.Minute), "11 minutes ago", "en"}, |
||
277 | {smallSubTime(-20 * time.Minute), "20 minutes ago", "en"}, |
||
278 | {smallSubTime(-21 * time.Minute), "21 minute ago", "en"}, |
||
279 | {smallSubTime(-22 * time.Minute), "22 minutes ago", "en"}, |
||
280 | {smallSubTime(-30 * time.Minute), "30 minutes ago", "en"}, |
||
281 | {smallSubTime(-31 * time.Minute), "31 minute ago", "en"}, |
||
282 | {smallSubTime(-59 * time.Minute), "59 minutes ago", "en"}, |
||
283 | {smallSubTime(-60 * time.Minute), "1 hour ago", "en"}, |
||
284 | {smallSubTime(-1 * time.Hour), "1 hour ago", "en"}, |
||
285 | {smallSubTime(-2 * time.Hour), "2 hours ago", "en"}, |
||
286 | {smallSubTime(-9 * time.Hour), "9 hours ago", "en"}, |
||
287 | {smallSubTime(-10 * time.Hour), "10 hours ago", "en"}, |
||
288 | {smallSubTime(-11 * time.Hour), "11 hours ago", "en"}, |
||
289 | {smallSubTime(-20 * time.Hour), "20 hours ago", "en"}, |
||
290 | {smallSubTime(-21 * time.Hour), "21 hour ago", "en"}, |
||
291 | {smallSubTime(-23 * time.Hour), "23 hours ago", "en"}, |
||
292 | {smallSubTime(-24 * time.Hour), "1 day ago", "en"}, |
||
293 | {smallSubTime(-47 * time.Hour), "1 day ago", "en"}, |
||
294 | {smallSubTime((-24 * 2) * time.Hour), "2 days ago", "en"}, |
||
295 | {smallSubTime((-24 * 6) * time.Hour), "6 days ago", "en"}, |
||
296 | {smallSubTime((-24 * 7) * time.Hour), "1 week ago", "en"}, |
||
297 | {smallSubTime((-24 * 14) * time.Hour), "2 weeks ago", "en"}, |
||
298 | {smallSubTime((-24 * 21) * time.Hour), "3 weeks ago", "en"}, |
||
299 | {bigSubTime(0, 1, 1), "1 month ago", "en"}, |
||
300 | {bigSubTime(0, 2, 1), "2 months ago", "en"}, |
||
301 | {bigSubTime(0, 9, 1), "9 months ago", "en"}, |
||
302 | {bigSubTime(0, 11, 1), "11 months ago", "en"}, |
||
303 | {bigSubTime(0, 12, 1), "1 year ago", "en"}, |
||
304 | {bigSubTime(1, 0, 1), "1 year ago", "en"}, |
||
305 | {bigSubTime(2, 0, 1), "2 years ago", "en"}, |
||
306 | {bigSubTime(21, 0, 1), "21 year ago", "en"}, |
||
307 | {bigSubTime(31, 0, 1), "31 year ago", "en"}, |
||
308 | {bigSubTime(100, 0, 1), "100 years ago", "en"}, |
||
309 | // russian |
||
310 | {smallSubTime(time.Second * 2), "В сети", "ru"}, |
||
311 | {smallSubTime(time.Second), "В сети", "ru"}, |
||
312 | {smallSubTime(-1 * time.Second), "В сети", "ru"}, |
||
313 | {smallSubTime(-2 * time.Second), "В сети", "ru"}, |
||
314 | {smallSubTime(-9 * time.Second), "В сети", "ru"}, |
||
315 | {smallSubTime(-10 * time.Second), "В сети", "ru"}, |
||
316 | {smallSubTime(-11 * time.Second), "В сети", "ru"}, |
||
317 | {smallSubTime(-20 * time.Second), "В сети", "ru"}, |
||
318 | {smallSubTime(-21 * time.Second), "В сети", "ru"}, |
||
319 | {smallSubTime(-22 * time.Second), "В сети", "ru"}, |
||
320 | {smallSubTime(-30 * time.Second), "В сети", "ru"}, |
||
321 | {smallSubTime(-31 * time.Second), "В сети", "ru"}, |
||
322 | {smallSubTime(-59 * time.Second), "В сети", "ru"}, |
||
323 | {smallSubTime(-60 * time.Second), "1 минута назад", "ru"}, |
||
324 | {smallSubTime(-1 * time.Minute), "1 минута назад", "ru"}, |
||
325 | {smallSubTime(-2 * time.Minute), "2 минуты назад", "ru"}, |
||
326 | {smallSubTime(-9 * time.Minute), "9 минут назад", "ru"}, |
||
327 | {smallSubTime(-10 * time.Minute), "10 минут назад", "ru"}, |
||
328 | {smallSubTime(-11 * time.Minute), "11 минут назад", "ru"}, |
||
329 | {smallSubTime(-20 * time.Minute), "20 минут назад", "ru"}, |
||
330 | {smallSubTime(-21 * time.Minute), "21 минута назад", "ru"}, |
||
331 | {smallSubTime(-22 * time.Minute), "22 минуты назад", "ru"}, |
||
332 | {smallSubTime(-30 * time.Minute), "30 минут назад", "ru"}, |
||
333 | {smallSubTime(-31 * time.Minute), "31 минута назад", "ru"}, |
||
334 | {smallSubTime(-59 * time.Minute), "59 минут назад", "ru"}, |
||
335 | {smallSubTime(-60 * time.Minute), "1 час назад", "ru"}, |
||
336 | {smallSubTime(-1 * time.Hour), "1 час назад", "ru"}, |
||
337 | {smallSubTime(-2 * time.Hour), "2 часа назад", "ru"}, |
||
338 | {smallSubTime(-9 * time.Hour), "9 часов назад", "ru"}, |
||
339 | {smallSubTime(-10 * time.Hour), "10 часов назад", "ru"}, |
||
340 | {smallSubTime(-11 * time.Hour), "11 часов назад", "ru"}, |
||
341 | {smallSubTime(-20 * time.Hour), "20 часов назад", "ru"}, |
||
342 | {smallSubTime(-21 * time.Hour), "21 час назад", "ru"}, |
||
343 | {smallSubTime(-23 * time.Hour), "23 часа назад", "ru"}, |
||
344 | {smallSubTime(-24 * time.Hour), "1 день назад", "ru"}, |
||
345 | {smallSubTime(-47 * time.Hour), "1 день назад", "ru"}, |
||
346 | {smallSubTime((-24 * 2) * time.Hour), "2 дня назад", "ru"}, |
||
347 | {smallSubTime((-24 * 6) * time.Hour), "6 дней назад", "ru"}, |
||
348 | {smallSubTime((-24 * 7) * time.Hour), "1 неделя назад", "ru"}, |
||
349 | {smallSubTime((-24 * 14) * time.Hour), "2 недели назад", "ru"}, |
||
350 | {smallSubTime((-24 * 21) * time.Hour), "3 недели назад", "ru"}, |
||
351 | {bigSubTime(0, 1, 1), "1 месяц назад", "ru"}, |
||
352 | {bigSubTime(0, 2, 1), "2 месяца назад", "ru"}, |
||
353 | {bigSubTime(0, 9, 1), "9 месяцев назад", "ru"}, |
||
354 | {bigSubTime(0, 11, 1), "11 месяцев назад", "ru"}, |
||
355 | {bigSubTime(0, 12, 1), "1 год назад", "ru"}, |
||
356 | {bigSubTime(1, 0, 1), "1 год назад", "ru"}, |
||
357 | {bigSubTime(2, 0, 1), "2 года назад", "ru"}, |
||
358 | {bigSubTime(5, 0, 1), "5 лет назад", "ru"}, |
||
359 | {bigSubTime(6, 0, 1), "6 лет назад", "ru"}, |
||
360 | {bigSubTime(7, 0, 1), "7 лет назад", "ru"}, |
||
361 | {bigSubTime(21, 0, 1), "21 год назад", "ru"}, |
||
362 | {bigSubTime(31, 0, 1), "31 год назад", "ru"}, |
||
363 | {bigSubTime(100, 0, 1), "100 лет назад", "ru"}, |
||
364 | } |
||
365 | |||
366 | for _, tc := range cases { |
||
367 | t.Run("result for "+tc.date+"|online", func(test *testing.T) { |
||
368 | Set("language", tc.lang) |
||
369 | |||
370 | if res := Take(tc.date + "|online"); res != tc.result { |
||
371 | test.Errorf("Result must be %s, but got %s instead", tc.result, res) |
||
372 | } |
||
376 |