ffakerer 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. checksums.yaml +15 -0
  2. data/Changelog.md +154 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +22 -0
  5. data/README.md +88 -0
  6. data/Rakefile +138 -0
  7. data/ffakerer.gemspec +266 -0
  8. data/lib/ffakerer.rb +31 -0
  9. data/lib/ffakerer/address.rb +99 -0
  10. data/lib/ffakerer/address_au.rb +106 -0
  11. data/lib/ffakerer/address_ca.rb +28 -0
  12. data/lib/ffakerer/address_da.rb +56 -0
  13. data/lib/ffakerer/address_de.rb +42 -0
  14. data/lib/ffakerer/address_mx.rb +505 -0
  15. data/lib/ffakerer/address_se.rb +48 -0
  16. data/lib/ffakerer/address_sn.rb +25 -0
  17. data/lib/ffakerer/address_uk.rb +27 -0
  18. data/lib/ffakerer/address_us.rb +30 -0
  19. data/lib/ffakerer/bacon_ipsum.rb +21 -0
  20. data/lib/ffakerer/company.rb +45 -0
  21. data/lib/ffakerer/company_se.rb +24 -0
  22. data/lib/ffakerer/conference.rb +12 -0
  23. data/lib/ffakerer/data/address/city_suffixes +19 -0
  24. data/lib/ffakerer/data/address/country +242 -0
  25. data/lib/ffakerer/data/address/neighborhood +49 -0
  26. data/lib/ffakerer/data/address/street_suffix +195 -0
  27. data/lib/ffakerer/data/address_ca/province +13 -0
  28. data/lib/ffakerer/data/address_da/city +592 -0
  29. data/lib/ffakerer/data/address_da/kommune +92 -0
  30. data/lib/ffakerer/data/address_da/street +657 -0
  31. data/lib/ffakerer/data/address_de/city +1666 -0
  32. data/lib/ffakerer/data/address_de/state +15 -0
  33. data/lib/ffakerer/data/address_mx/state +32 -0
  34. data/lib/ffakerer/data/address_mx/state_abbr +32 -0
  35. data/lib/ffakerer/data/address_se/city +154 -0
  36. data/lib/ffakerer/data/address_se/countries +250 -0
  37. data/lib/ffakerer/data/address_se/street +2887 -0
  38. data/lib/ffakerer/data/address_sn/arrondissements +47 -0
  39. data/lib/ffakerer/data/address_sn/departements +43 -0
  40. data/lib/ffakerer/data/address_sn/regions +14 -0
  41. data/lib/ffakerer/data/address_uk/uk_county +70 -0
  42. data/lib/ffakerer/data/address_us/state +50 -0
  43. data/lib/ffakerer/data/address_us/state_abbr +51 -0
  44. data/lib/ffakerer/data/address_us/state_and_territories_abbr +62 -0
  45. data/lib/ffakerer/data/bacon_ipsum/bacon_words +60 -0
  46. data/lib/ffakerer/data/company/bs_mid +65 -0
  47. data/lib/ffakerer/data/company/bs_pos +44 -0
  48. data/lib/ffakerer/data/company/bs_pre +60 -0
  49. data/lib/ffakerer/data/company/catch_mid +101 -0
  50. data/lib/ffakerer/data/company/catch_pos +104 -0
  51. data/lib/ffakerer/data/company/catch_pre +100 -0
  52. data/lib/ffakerer/data/company/position_areas +11 -0
  53. data/lib/ffakerer/data/conference/conference_list +40 -0
  54. data/lib/ffakerer/data/dizzle_ipsum/dizzle_words +69 -0
  55. data/lib/ffakerer/data/education/major_noun +13 -0
  56. data/lib/ffakerer/data/education/school_suffix +13 -0
  57. data/lib/ffakerer/data/healthcare_ipsum/healthcare_words +193 -0
  58. data/lib/ffakerer/data/hipster_ipsum/hipster_words +101 -0
  59. data/lib/ffakerer/data/job/job_adj +37 -0
  60. data/lib/ffakerer/data/job/job_noun +25 -0
  61. data/lib/ffakerer/data/job/job_prefix +22 -0
  62. data/lib/ffakerer/data/job_fr/job_nouns +14 -0
  63. data/lib/ffakerer/data/job_fr/job_prefixes +15 -0
  64. data/lib/ffakerer/data/lorem/characters +36 -0
  65. data/lib/ffakerer/data/lorem/words +249 -0
  66. data/lib/ffakerer/data/lorem_ar/words +911 -0
  67. data/lib/ffakerer/data/lorem_cn/words +706 -0
  68. data/lib/ffakerer/data/lorem_fr/words +10379 -0
  69. data/lib/ffakerer/data/movie/adj_and_adv +20 -0
  70. data/lib/ffakerer/data/movie/nouns +36 -0
  71. data/lib/ffakerer/data/movie/prefixes +17 -0
  72. data/lib/ffakerer/data/name/first_names +3008 -0
  73. data/lib/ffakerer/data/name/last_names +475 -0
  74. data/lib/ffakerer/data/name_cn/first_names +1000 -0
  75. data/lib/ffakerer/data/name_cn/last_names +1057 -0
  76. data/lib/ffakerer/data/name_cs/prefixes +16 -0
  77. data/lib/ffakerer/data/name_da/female_first_names +492 -0
  78. data/lib/ffakerer/data/name_da/last_names +187 -0
  79. data/lib/ffakerer/data/name_da/male_first_names +390 -0
  80. data/lib/ffakerer/data/name_de/first_names +1166 -0
  81. data/lib/ffakerer/data/name_de/last_names +100 -0
  82. data/lib/ffakerer/data/name_fr/first_names +220 -0
  83. data/lib/ffakerer/data/name_fr/last_names +408 -0
  84. data/lib/ffakerer/data/name_ga/first_names_female +225 -0
  85. data/lib/ffakerer/data/name_ga/first_names_male +306 -0
  86. data/lib/ffakerer/data/name_ja/first_names +397 -0
  87. data/lib/ffakerer/data/name_ja/last_names +1078 -0
  88. data/lib/ffakerer/data/name_kr/first_names +1317 -0
  89. data/lib/ffakerer/data/name_kr/last_names +197 -0
  90. data/lib/ffakerer/data/name_mx/female_first_names +216 -0
  91. data/lib/ffakerer/data/name_mx/last_names +352 -0
  92. data/lib/ffakerer/data/name_mx/male_first_names +211 -0
  93. data/lib/ffakerer/data/name_ph/autochthonous_surnames +217 -0
  94. data/lib/ffakerer/data/name_ph/spanish_surnames +300 -0
  95. data/lib/ffakerer/data/name_se/first_names_female +110 -0
  96. data/lib/ffakerer/data/name_se/first_names_male +110 -0
  97. data/lib/ffakerer/data/name_se/last_names +100 -0
  98. data/lib/ffakerer/data/name_sn/first_names_female +225 -0
  99. data/lib/ffakerer/data/name_sn/first_names_male +304 -0
  100. data/lib/ffakerer/data/name_sn/last_names +243 -0
  101. data/lib/ffakerer/data/name_vn/first_names +6 -0
  102. data/lib/ffakerer/data/name_vn/last_names +67 -0
  103. data/lib/ffakerer/data/name_vn/middle_names +89 -0
  104. data/lib/ffakerer/data/phone_number_se/phone_prefix +265 -0
  105. data/lib/ffakerer/data/product/adj +19 -0
  106. data/lib/ffakerer/data/product/b1 +19 -0
  107. data/lib/ffakerer/data/product/noun +16 -0
  108. data/lib/ffakerer/data/skill/specialty_end +14 -0
  109. data/lib/ffakerer/data/skill/specialty_start +18 -0
  110. data/lib/ffakerer/data/skill/tech_skills +52 -0
  111. data/lib/ffakerer/data/venue/venue_list +33 -0
  112. data/lib/ffakerer/dizzle_ipsum.rb +21 -0
  113. data/lib/ffakerer/education.rb +48 -0
  114. data/lib/ffakerer/geolocation.rb +50 -0
  115. data/lib/ffakerer/healthcare_ipsum.rb +20 -0
  116. data/lib/ffakerer/hipster_ipsum.rb +21 -0
  117. data/lib/ffakerer/html_ipsum.rb +160 -0
  118. data/lib/ffakerer/identification.rb +27 -0
  119. data/lib/ffakerer/identification_es.rb +15 -0
  120. data/lib/ffakerer/identification_es_cl.rb +26 -0
  121. data/lib/ffakerer/identification_es_co.rb +40 -0
  122. data/lib/ffakerer/internet.rb +72 -0
  123. data/lib/ffakerer/internet_se.rb +106 -0
  124. data/lib/ffakerer/job.rb +12 -0
  125. data/lib/ffakerer/job_fr.rb +14 -0
  126. data/lib/ffakerer/lorem.rb +44 -0
  127. data/lib/ffakerer/lorem_ar.rb +40 -0
  128. data/lib/ffakerer/lorem_cn.rb +41 -0
  129. data/lib/ffakerer/lorem_fr.rb +39 -0
  130. data/lib/ffakerer/movie.rb +63 -0
  131. data/lib/ffakerer/name.rb +35 -0
  132. data/lib/ffakerer/name_cn.rb +24 -0
  133. data/lib/ffakerer/name_cs.rb +90 -0
  134. data/lib/ffakerer/name_da.rb +68 -0
  135. data/lib/ffakerer/name_de.rb +33 -0
  136. data/lib/ffakerer/name_fr.rb +37 -0
  137. data/lib/ffakerer/name_ga.rb +47 -0
  138. data/lib/ffakerer/name_ja.rb +24 -0
  139. data/lib/ffakerer/name_kr.rb +24 -0
  140. data/lib/ffakerer/name_mx.rb +103 -0
  141. data/lib/ffakerer/name_ph.rb +29 -0
  142. data/lib/ffakerer/name_ru.rb +92 -0
  143. data/lib/ffakerer/name_se.rb +47 -0
  144. data/lib/ffakerer/name_sn.rb +65 -0
  145. data/lib/ffakerer/name_vn.rb +28 -0
  146. data/lib/ffakerer/phone_number.rb +34 -0
  147. data/lib/ffakerer/phone_number_au.rb +77 -0
  148. data/lib/ffakerer/phone_number_da.rb +45 -0
  149. data/lib/ffakerer/phone_number_de.rb +51 -0
  150. data/lib/ffakerer/phone_number_mx.rb +58 -0
  151. data/lib/ffakerer/phone_number_se.rb +90 -0
  152. data/lib/ffakerer/phone_number_sg.rb +81 -0
  153. data/lib/ffakerer/phone_number_sn.rb +78 -0
  154. data/lib/ffakerer/product.rb +45 -0
  155. data/lib/ffakerer/skill.rb +24 -0
  156. data/lib/ffakerer/ssn.rb +17 -0
  157. data/lib/ffakerer/ssn_se.rb +109 -0
  158. data/lib/ffakerer/string.rb +92 -0
  159. data/lib/ffakerer/time.rb +30 -0
  160. data/lib/ffakerer/unit.rb +50 -0
  161. data/lib/ffakerer/unit_english.rb +114 -0
  162. data/lib/ffakerer/unit_metric.rb +105 -0
  163. data/lib/ffakerer/utils/array_utils.rb +44 -0
  164. data/lib/ffakerer/utils/module_utils.rb +29 -0
  165. data/lib/ffakerer/venue.rb +12 -0
  166. data/scripts/benchmark.rb +21 -0
  167. data/scripts/profile.sh +2 -0
  168. data/scripts/profiling.rb +7 -0
  169. data/test/helper.rb +2 -0
  170. data/test/test_address.rb +73 -0
  171. data/test/test_address_au.rb +58 -0
  172. data/test/test_address_ca.rb +17 -0
  173. data/test/test_address_de.rb +25 -0
  174. data/test/test_address_mx.rb +26 -0
  175. data/test/test_address_se.rb +36 -0
  176. data/test/test_address_sn.rb +25 -0
  177. data/test/test_address_uk.rb +17 -0
  178. data/test/test_address_us.rb +25 -0
  179. data/test/test_array_utils.rb +52 -0
  180. data/test/test_bacon_ipsum.rb +30 -0
  181. data/test/test_company.rb +23 -0
  182. data/test/test_company_se.rb +14 -0
  183. data/test/test_conference.rb +10 -0
  184. data/test/test_dizzle_ipsum.rb +30 -0
  185. data/test/test_education.rb +34 -0
  186. data/test/test_faker.rb +30 -0
  187. data/test/test_faker_internet.rb +60 -0
  188. data/test/test_faker_internet_se.rb +67 -0
  189. data/test/test_faker_job.rb +14 -0
  190. data/test/test_faker_job_fr.rb +22 -0
  191. data/test/test_faker_name.rb +21 -0
  192. data/test/test_faker_name_cn.rb +13 -0
  193. data/test/test_faker_name_cs.rb +65 -0
  194. data/test/test_faker_name_de.rb +21 -0
  195. data/test/test_faker_name_fr.rb +48 -0
  196. data/test/test_faker_name_ga.rb +56 -0
  197. data/test/test_faker_name_ja.rb +13 -0
  198. data/test/test_faker_name_kr.rb +13 -0
  199. data/test/test_faker_name_mx.rb +180 -0
  200. data/test/test_faker_name_ph.rb +17 -0
  201. data/test/test_faker_name_ru.rb +80 -0
  202. data/test/test_faker_name_se.rb +38 -0
  203. data/test/test_faker_name_sn.rb +98 -0
  204. data/test/test_geolocation.rb +34 -0
  205. data/test/test_healthcare_ipsum.rb +27 -0
  206. data/test/test_hipster_ipsum.rb +29 -0
  207. data/test/test_html_ipsum.rb +91 -0
  208. data/test/test_identification.rb +27 -0
  209. data/test/test_identification_co.rb +38 -0
  210. data/test/test_identification_es.rb +13 -0
  211. data/test/test_identification_es_cl.rb +13 -0
  212. data/test/test_lorem.rb +44 -0
  213. data/test/test_lorem_ar.rb +37 -0
  214. data/test/test_lorem_cn.rb +47 -0
  215. data/test/test_lorem_fr.rb +37 -0
  216. data/test/test_module_utils.rb +14 -0
  217. data/test/test_movie.rb +9 -0
  218. data/test/test_phone_number.rb +13 -0
  219. data/test/test_phone_number_au.rb +50 -0
  220. data/test/test_phone_number_de.rb +46 -0
  221. data/test/test_phone_number_mx.rb +43 -0
  222. data/test/test_phone_number_se.rb +60 -0
  223. data/test/test_phone_number_sg.rb +44 -0
  224. data/test/test_phone_number_sn.rb +34 -0
  225. data/test/test_skill.rb +24 -0
  226. data/test/test_ssn.rb +11 -0
  227. data/test/test_ssn_se.rb +43 -0
  228. data/test/test_string.rb +71 -0
  229. data/test/test_time.rb +19 -0
  230. data/test/test_units.rb +32 -0
  231. data/test/test_units_english.rb +62 -0
  232. data/test/test_units_metric.rb +61 -0
  233. data/test/test_venue.rb +9 -0
  234. metadata +372 -0
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestFakerNamePH < Test::Unit::TestCase
6
+ def setup
7
+ @tester = Faker::NamePH
8
+ end
9
+
10
+ def test_name
11
+ assert @tester.name.match(/(\w+\.? ?){2,3}/)
12
+ end
13
+
14
+ def test_prefix
15
+ assert @tester.prefix.match(/[A-Z][a-z]+\.?/)
16
+ end
17
+ end
@@ -0,0 +1,80 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestFakerNameRu < Test::Unit::TestCase
6
+ def setup
7
+ @tester = Faker::NameRU
8
+ end
9
+
10
+ def test_name
11
+ @words = @tester.name.split
12
+ assert [2,3].include?(@words.size)
13
+ assert @words.each { |word| word.match /[А-Я][а-я]+/ }
14
+ end
15
+
16
+ def test_name_sex
17
+ @words = @tester.name.split
18
+ assert same_sex?(@words)
19
+ end
20
+
21
+ def test_uniqueness
22
+ unique_names = (1..10000).map { @tester.name }.uniq.size
23
+ assert unique_names > 9850, "got only #{unique_names} unique names out of 10000"
24
+ end
25
+
26
+ def test_last_name
27
+ assert @tester.last_name.match(/[А-Я][а-я]+/)
28
+ end
29
+
30
+ def test_male_last_name
31
+ assert Faker::NameRU::LAST_NAMES[:male].include?(@tester.last_name(:male))
32
+ end
33
+
34
+ def test_first_name
35
+ assert @tester.first_name.match(/[А-Я][а-я]+/)
36
+ end
37
+
38
+ def test_male_first_name
39
+ assert Faker::NameRU::FIRST_NAMES[:male].include?(@tester.first_name(:male))
40
+ end
41
+
42
+ def test_patronymic
43
+ assert @tester.patronymic.match(/[А-Я][а-я]+/)
44
+ end
45
+
46
+ def test_male_patronymic
47
+ assert Faker::NameRU::PATRONYMICS[:male].include?(@tester.patronymic(:male))
48
+ end
49
+
50
+ def test_with_same_sex
51
+ names = []
52
+ @tester.with_same_sex do
53
+ names << @tester.last_name
54
+ names << @tester.first_name
55
+ names << @tester.patronymic
56
+ end
57
+ assert same_sex?(names)
58
+ end
59
+
60
+ def test_with_same_sex_for_male
61
+ names = []
62
+ @tester.with_same_sex(:male) do
63
+ names << @tester.last_name
64
+ names << @tester.first_name
65
+ names << @tester.patronymic
66
+ end
67
+ assert same_sex?(names, :male)
68
+ end
69
+
70
+ # checks if every name is of the same sex
71
+ def same_sex?(words, sex = :any)
72
+ (sex == :any ? [:male, :female] : [sex]).any? do |sex|
73
+ words.all? do |word|
74
+ [Faker::NameRU::LAST_NAMES, Faker::NameRU::FIRST_NAMES, Faker::NameRU::PATRONYMICS].any? do |names|
75
+ names[sex].include?(word)
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,38 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestFakerNameSE < Test::Unit::TestCase
6
+
7
+ def setup
8
+ @tester = Faker::NameSE
9
+ end
10
+
11
+ def test_last_name
12
+ assert Faker::NameSE::LAST_NAMES.include?(@tester.last_name)
13
+ end
14
+
15
+ def test_first_name_male
16
+ assert Faker::NameSE::FIRST_NAMES_MALE.include?(@tester.first_name_male)
17
+ end
18
+
19
+ def test_first_name_female
20
+ assert Faker::NameSE::FIRST_NAMES_FEMALE.include?(@tester.first_name_female)
21
+ end
22
+
23
+ def test_prefix
24
+ assert Faker::NameSE::PREFIXES.include?(@tester.prefix)
25
+ end
26
+
27
+ def test_first_name
28
+ parts = @tester.first_name.split(' ')
29
+ assert [1,2].include? parts.count
30
+ end
31
+
32
+ def test_name
33
+ parts = @tester.name.split(' ')
34
+ assert [2, 3, 4].include? parts.count
35
+ end
36
+
37
+ end
38
+
@@ -0,0 +1,98 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ # Author: PapePathe<pathe.sene@gmail.com> github.com/PapePathe
6
+ class TestFakerNameSn < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @tester = Faker::NameSN
10
+ end
11
+
12
+ def test_last_name
13
+ assert Faker::NameSN::LAST_NAMES.include?(@tester.last_name)
14
+ end
15
+
16
+ def test_first_name_male
17
+ assert Faker::NameSN::FIRST_NAMES_MALE.include?(@tester.first_name_male)
18
+ end
19
+
20
+ def test_first_name_female
21
+ assert Faker::NameSN::FIRST_NAMES_FEMALE.include?(@tester.first_name_female)
22
+ end
23
+
24
+ def test_prefix_male
25
+ assert Faker::NameSN::PREFIX_MALE.include?(@tester.prefix_male)
26
+ end
27
+
28
+ def test_prefix_female
29
+ assert Faker::NameSN::PREFIX_FEMALE.include?(@tester.prefix_female)
30
+ end
31
+
32
+ def test_name_male
33
+ # => split the name_male into an array of words
34
+ parts = @tester.name_male.split(' ')
35
+
36
+ if parts.count == 3
37
+ # the value at the index 0 should be a valid! male_prefix
38
+ assert Faker::NameSN::PREFIX_MALE.include?(parts[0])
39
+
40
+ # the value at the index 1 should be a valid! male_first_name
41
+ assert Faker::NameSN::FIRST_NAMES_MALE.include?(parts[1])
42
+
43
+ # the value at the index 2 should be a valid! last_name
44
+ assert Faker::NameSN::LAST_NAMES.include?(parts[2])
45
+
46
+ elsif parts.count == 2
47
+ # the value at the index 0 should be a valid! male_prefix
48
+ assert Faker::NameSN::FIRST_NAMES_MALE.include?(parts[0])
49
+
50
+ # the value at the index 1 should be a valid! last_name
51
+ assert Faker::NameSN::LAST_NAMES.include?(parts[1])
52
+ end
53
+ end
54
+
55
+ def test_name_female
56
+ # => split the name_female into an array of words
57
+ parts = @tester.name_female.split(' ')
58
+
59
+ if parts.count == 3
60
+ # the value at the index 0 should be a valid! male_prefix
61
+ assert Faker::NameSN::PREFIX_FEMALE.include?(parts[0])
62
+
63
+ # the value at the index 1 should be a valid! male_first_name
64
+ assert Faker::NameSN::FIRST_NAMES_FEMALE.include?(parts[1])
65
+
66
+ # the value at the index 2 should be a valid! last_name
67
+ assert Faker::NameSN::LAST_NAMES.include?(parts[2])
68
+ elsif parts.count == 2
69
+ # the value at the index 0 should be a valid! male_prefix
70
+ assert Faker::NameSN::FIRST_NAMES_FEMALE.include?(parts[0])
71
+
72
+ # the value at the index 1 should be a valid! last_name
73
+ assert Faker::NameSN::LAST_NAMES.include?(parts[1])
74
+ end
75
+ end
76
+
77
+ def test_senegalese_name
78
+ # => split the name into an array of words
79
+ parts = @tester.name_sn.split(' ')
80
+
81
+ if parts.count == 3
82
+ # the value at the index 0 should be a valid! male or female prefix
83
+ assert Faker::NameSN::PREFIX_FEMALE.include?(parts[0]) || Faker::NameSN::PREFIX_MALE.include?(parts[0])
84
+
85
+ # the value at the index 1 should be a valid! firstname male or female
86
+ assert Faker::NameSN::FIRST_NAMES_FEMALE.include?(parts[1]) || Faker::NameSN::FIRST_NAMES_MALE.include?(parts[1])
87
+
88
+ # the value at the index 2 should be a valid! firstname male or female
89
+ assert Faker::NameSN::LAST_NAMES.include?(parts[2])
90
+ elsif parts.count == 2
91
+ # the value at the index 0 should be a valid! firstname male or female
92
+ assert Faker::NameSN::FIRST_NAMES_FEMALE.include?(parts[0]) || Faker::NameSN::FIRST_NAMES_MALE.include?(parts[0])
93
+
94
+ # the value at the index 0 should be a valid! firstname male or female
95
+ assert Faker::NameSN::LAST_NAMES.include?(parts[1])
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,34 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestGeolocation < Test::Unit::TestCase
6
+ def test_lat
7
+ assert_match /[0-9]+/, Faker::Geolocation.lat.to_s
8
+ end
9
+
10
+ def test_lng
11
+ assert_match /[0-9]+/, Faker::Geolocation.lng.to_s
12
+ end
13
+
14
+ def test_boxed_coords
15
+ coords_list = [
16
+ [[1,1], [3,3]],
17
+ [[12.3455,23.3434], [34.3434,36.34343]],
18
+ [[12.3455,23.3434], [10.3434,6.34343]]
19
+ ]
20
+
21
+ coords_list.each do |coords|
22
+ lat_min = [coords[0][0], coords[1][0]].min
23
+ lat_max = [coords[0][0], coords[1][0]].max
24
+ lon_min = [coords[0][1], coords[1][1]].min
25
+ lon_max = [coords[0][1], coords[1][1]].max
26
+
27
+ new_coords = Faker::Geolocation.boxed_coords(coords[0], coords[1])
28
+
29
+ assert (lat_min..lat_max).include?new_coords[0]
30
+ assert (lon_min..lon_max).include?new_coords[1]
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,27 @@
1
+ require 'helper'
2
+
3
+ class TestHealthcareIpsum < Test::Unit::TestCase
4
+ def test_paragraph
5
+ assert_match /1\+|[ a-z]+/i, Faker::HealthcareIpsum.paragraph
6
+ end
7
+
8
+ def test_sentence
9
+ assert_match /1\+|[ a-z]+/i, Faker::HealthcareIpsum.sentence
10
+ end
11
+
12
+ def test_paragraphs
13
+ assert_match /1\+|[ a-z]+/i, Faker::HealthcareIpsum.paragraphs.join(" ")
14
+ end
15
+
16
+ def test_sentences
17
+ assert_match /1\+|[ a-z]+/i, Faker::HealthcareIpsum.sentences.join(" ")
18
+ end
19
+
20
+ def test_words
21
+ assert_match /1\+|[ a-z]+/i, Faker::HealthcareIpsum.words.join(" ")
22
+ end
23
+
24
+ def test_word
25
+ assert_match /1\+|[a-z]+/i, Faker::HealthcareIpsum.word
26
+ end
27
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestHipsterIpsum < Test::Unit::TestCase
6
+ def test_paragraph
7
+ assert_match /1\+|[ a-z]+/i, Faker::HipsterIpsum.paragraph
8
+ end
9
+
10
+ def test_sentence
11
+ assert_match /1\+|[ a-z]+/i, Faker::HipsterIpsum.sentence
12
+ end
13
+
14
+ def test_paragraphs
15
+ assert_match /1\+|[ a-z]+/i, Faker::HipsterIpsum.paragraphs.join(" ")
16
+ end
17
+
18
+ def test_sentences
19
+ assert_match /1\+|[ a-z]+/i, Faker::HipsterIpsum.sentences.join(" ")
20
+ end
21
+
22
+ def test_words
23
+ assert_match /1\+|[ a-z]+/i, Faker::HipsterIpsum.words.join(" ")
24
+ end
25
+
26
+ def test_word
27
+ assert_match /1\+|[a-z]+/i, Faker::HipsterIpsum.word
28
+ end
29
+ end
@@ -0,0 +1,91 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestHTMLIpsum < Test::Unit::TestCase
6
+ def setup
7
+ @tester = Faker::HTMLIpsum
8
+ end
9
+
10
+ def test_a
11
+ assert_match /^<a href="#\w+" title="[ \w]+">[ \w]+<\/a>$/i, Faker::HTMLIpsum.a
12
+ end
13
+
14
+ def test_p
15
+ # We can't predict the number of times the sentence pattern will repeat
16
+ # because the Faker::Lorem methods that we are using adds a random
17
+ # number on top of what we specify for the count argument.
18
+ assert_match /^<p>([ \w]+\.)+<\/p>$/i, Faker::HTMLIpsum.p
19
+ end
20
+
21
+ def test_p_breaks
22
+ # Here we can at least test how many <br> tags there are.
23
+ assert_match /^<p>(?:[ \w\.]+<br>){2}[ \w\.]+<\/p>$/i, Faker::HTMLIpsum.p(3, {:include_breaks => true})
24
+ end
25
+
26
+ def test_p_fancy
27
+ # We can't predict the number of times the sentence pattern will repeat
28
+ # because the Faker::Lorem methods that we are using adds a random
29
+ # number on top of what we specify for the count argument. We also have to
30
+ # account for the other HTML that is being returned.
31
+ str = Faker::HTMLIpsum.p(5, {:fancy => true})
32
+ assert_match /^<p>/, str
33
+ assert_match /<\/p>$/, str
34
+ assert str.length > 6, "string contains more than <p></p>"
35
+ end
36
+
37
+ def test_p_fancy_breaks
38
+ # Here we can at least test how many <br> tags there are. We also have to
39
+ # account for the other HTML that is being returned.
40
+ str = Faker::HTMLIpsum.p(10, {:fancy => true, :include_breaks => true})
41
+ assert_equal 10, str.split("<br>").length
42
+ end
43
+
44
+ def test_dl
45
+ assert_match /^<dl>(<dt>[ \w]+<\/dt><dd>[ \w.]+<\/dd>){3}<\/dl>$/i, Faker::HTMLIpsum.dl(3)
46
+ end
47
+
48
+ def test_ul_short
49
+ assert_match /^<ul>(<li>[ \w.]+<\/li>){3}<\/ul>$/i, Faker::HTMLIpsum.ul_short(3)
50
+ end
51
+
52
+ def test_ul_long
53
+ assert_match /^<ul>(<li>[ \w.]+<\/li>){3}<\/ul>$/i, Faker::HTMLIpsum.ul_long(3)
54
+ end
55
+
56
+ def test_ol_short
57
+ assert_match /^<ol>(<li>[ \w.]+<\/li>){3}<\/ol>$/i, Faker::HTMLIpsum.ol_short(3)
58
+ end
59
+
60
+ def test_ol_long
61
+ assert_match /^<ol>(<li>[ \w.]+<\/li>){3}<\/ol>$/i, Faker::HTMLIpsum.ol_long(3)
62
+ end
63
+
64
+ def test_ul_links
65
+ assert_match /^<ul>(<li><a href="#\w+" title="\w+">[ \w]+<\/a><\/li>){3}<\/ul>$/i, Faker::HTMLIpsum.ul_links(3)
66
+ end
67
+
68
+ def test_table
69
+ assert_match /(<td>[ \w]+<\/td>\s*){3}/i, Faker::HTMLIpsum.table(3)
70
+ end
71
+
72
+ def test_body
73
+ # We can't reliably predict what's going to end up inside, so just ensure
74
+ # that we have a complete string.
75
+ assert_match /^<h1>.+<\/pre>$/im, Faker::HTMLIpsum.body
76
+ end
77
+
78
+ def test_fancy_string
79
+ # We can't reliably predict what's going to end up inside, so just ensure
80
+ # that we have a complete string.
81
+ assert Faker::HTMLIpsum.fancy_string.is_a?(String), "returns a string"
82
+ assert Faker::HTMLIpsum.fancy_string.length > 1, "the string is longer than one char"
83
+ end
84
+
85
+ def test_fancy_string_breaks
86
+ # We can't reliably predict what's going to end up inside, so just ensure
87
+ # that we have a complete string.
88
+ str = Faker::HTMLIpsum.fancy_string(3, true)
89
+ assert_equal 3, str.split("<br>").length
90
+ end
91
+ end
@@ -0,0 +1,27 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestFakerIdentification < Test::Unit::TestCase
6
+ def setup
7
+ @tester = Faker::Identification
8
+ end
9
+
10
+ def test_drivers_license
11
+ ###-###-##-###-#
12
+ assert_match /[A-Z]\d{3}-\d{3}-\d{2}-\d{3}-\d{1}/, @tester.drivers_license
13
+ end
14
+
15
+ def test_ssn
16
+ assert_match /\d{3}-\d{2}-\d{4}/, @tester.ssn
17
+ end
18
+
19
+ def test_gender
20
+ assert_match /(Male|Female)/, @tester.gender
21
+ end
22
+
23
+ def test_ethnicity
24
+ ethnicity_regex = /(African American|Asian\/Pacific Islander|Caucasian|Hispanic|Native American|Multiracial|Other|Prefer not to respond)/
25
+ assert_match ethnicity_regex, @tester.ethnicity
26
+ end
27
+ end