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,105 @@
1
+ # encoding: utf-8
2
+
3
+ require 'ffakerer/unit'
4
+ require 'ostruct'
5
+
6
+ module Faker
7
+ module UnitMetric
8
+ include Faker::Unit
9
+
10
+ extend ModuleUtils
11
+ extend self
12
+
13
+ def mass_name
14
+ mass.name
15
+ end
16
+
17
+ def mass_abbr
18
+ mass.abbreviation
19
+ end
20
+
21
+ def length_name
22
+ length.name
23
+ end
24
+
25
+ def length_abbr
26
+ length.abbreviation
27
+ end
28
+
29
+ def liquid_name
30
+ liquid.name
31
+ end
32
+
33
+ def liquid_abbr
34
+ liquid.abbreviation
35
+ end
36
+
37
+ def volume_name
38
+ volume.name
39
+ end
40
+
41
+ def volume_abbr
42
+ volume.abbreviation
43
+ end
44
+
45
+ def area_name
46
+ area.name
47
+ end
48
+
49
+ def area_abbr
50
+ area.abbreviation
51
+ end
52
+
53
+ private
54
+
55
+ def length
56
+ OpenStruct.new LENGTH_UNITS.rand
57
+ end
58
+
59
+ def mass
60
+ OpenStruct.new MASS_UNITS.rand
61
+ end
62
+
63
+ def liquid
64
+ OpenStruct.new LIQUID_UNITS.rand
65
+ end
66
+
67
+ def volume
68
+ OpenStruct.new VOLUME_UNITS.rand
69
+ end
70
+
71
+ def area
72
+ OpenStruct.new AREA_UNITS.rand
73
+ end
74
+
75
+ LENGTH_UNITS = k [
76
+ { :name =>"millimeters", :abbreviation => "mm"},
77
+ { :name =>"centimeters", :abbreviation => "cm"},
78
+ { :name =>"meters", :abbreviation => "m"},
79
+ { :name =>"kilometers", :abbreviation => "km"}
80
+ ]
81
+
82
+ MASS_UNITS = k [
83
+ { :name => "gram", :abbreviation => "g"},
84
+ { :name => "kilogram", :abbreviation => "kg" },
85
+ { :name => "metric ton", :abbreviation => "mt"}
86
+ ]
87
+
88
+ LIQUID_UNITS = k [
89
+ { :name => "milliliters", :abbreviation => "ml"},
90
+ { :name => "liters", :abbreviation => "L"}
91
+ ]
92
+
93
+ VOLUME_UNITS = k [
94
+ { :name => " cubic centimeters", :abbreviation => "cm^3"},
95
+ { :name => "cubic meters", :abbreviation => "m^3"}
96
+ ]
97
+
98
+ AREA_UNITS = k [
99
+ { :name => "centimeters squared", :abbreviation => "cm^2"},
100
+ { :name => "meters squared", :abbreviation => "m^2"},
101
+ { :name => "hectares", :abbreviation => "ha"},
102
+ { :name => "kilometers", :abbreviation => "km" }
103
+ ]
104
+ end
105
+ end
@@ -0,0 +1,44 @@
1
+ module Faker
2
+ module ArrayUtils
3
+ def self.const_array(argument)
4
+ array = argument.is_a?(Array) ? argument : argument.to_a
5
+ array.extend ArrayUtils
6
+ freeze_all(array)
7
+ end
8
+
9
+ def self.random_pick(array, n)
10
+ indexes = (0...array.length).sort_by{Kernel.rand}[0...n]
11
+ indexes.map { |n| array[n].dup }
12
+ end
13
+
14
+ def self.rand(array)
15
+ array[Kernel.rand(array.length)].dup
16
+ end
17
+
18
+ def self.freeze_all(array)
19
+ array.each { |e| e.freeze }
20
+ array.freeze
21
+ array
22
+ end
23
+
24
+ def self.shuffle(array)
25
+ array.sort_by{Kernel.rand}
26
+ end
27
+
28
+ def random_pick(n)
29
+ ArrayUtils.random_pick(self, n)
30
+ end
31
+
32
+ def rand
33
+ ArrayUtils.rand(self)
34
+ end
35
+
36
+ def freeze_all
37
+ ArrayUtils.freeze_all(self)
38
+ end
39
+
40
+ def shuffle
41
+ ArrayUtils.shuffle(self)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,29 @@
1
+ require 'ffakerer/utils/array_utils'
2
+
3
+ module Faker
4
+ module ModuleUtils
5
+ def k(arg)
6
+ Faker::ArrayUtils.const_array(arg)
7
+ end
8
+
9
+ def const_missing(const_name)
10
+ if const_name =~ /[a-z]/ # Not a constant, probably a class/module name.
11
+ super const_name
12
+ else
13
+ mod_name = ancestors.first.to_s.split("::").last
14
+ data_path = "#{Faker::BASE_LIB_PATH}/ffakerer/data/#{underscore(mod_name)}/#{underscore(const_name.to_s)}"
15
+ data = k File.read(data_path).split("\n")
16
+ const_set const_name, data
17
+ data
18
+ end
19
+ end
20
+
21
+ def underscore(string)
22
+ string.gsub(/::/, '/').
23
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
24
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
25
+ tr("-", "_").
26
+ downcase
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+
3
+ module Faker
4
+ module Venue
5
+ extend ModuleUtils
6
+ extend self
7
+
8
+ def name
9
+ VENUE_LIST.rand
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,21 @@
1
+ require 'rubygems'
2
+ require 'benchmark'
3
+
4
+ N = 10_000
5
+
6
+ def run(name)
7
+ require name
8
+ Benchmark.bm do |rep|
9
+ rep.report("generating #{ N } names (#{name} #{Faker::VERSION})") do
10
+ N.times do
11
+ Faker::Name.name
12
+ end
13
+ end
14
+ end
15
+ $stdout.flush
16
+ exit(0)
17
+ end
18
+
19
+ fork { run("faker") }; Process.wait
20
+ fork { run("ffaker") }; Process.wait
21
+ fork { run("ffakerer") }; Process.wait
@@ -0,0 +1,2 @@
1
+ #!/bin/sh
2
+ ruby-prof -pcall_tree -fprofile.data profiling.rb
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/../lib/faker'
2
+
3
+ N = 1_000_000
4
+
5
+ N.times do
6
+ Faker::Name.name
7
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require 'ffaker'
@@ -0,0 +1,73 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestAddress < Test::Unit::TestCase
6
+ def test_building_number
7
+ assert_match /\A\d{3,5}\z/, Faker::Address.building_number
8
+ end
9
+
10
+ def test_city
11
+ assert_match /[ a-z]+/, Faker::Address.city
12
+ end
13
+
14
+ def test_city_prefix
15
+ assert_match /[ a-z]/, Faker::Address.city_prefix
16
+ end
17
+
18
+ def test_city_suffix
19
+ assert_match /[ a-z]/, Faker::Address.city_suffix
20
+ end
21
+
22
+ def test_secondary_address
23
+ assert_match /[ a-z]/, Faker::Address.secondary_address
24
+ end
25
+
26
+ def test_street_address
27
+ assert_match /[ a-z]/, Faker::Address.street_address
28
+ end
29
+
30
+ def test_street_name
31
+ assert_match /[ a-z]/, Faker::Address.street_name
32
+ end
33
+
34
+ def test_street_suffix
35
+ assert_match /[ a-z]/, Faker::Address.street_suffix
36
+ end
37
+
38
+ def test_uk_country
39
+ assert_match /[ a-z]/, Faker::AddressUK.country
40
+ end
41
+
42
+ def test_uk_county
43
+ assert_match /[ a-z]/, Faker::AddressUK.county
44
+ end
45
+
46
+ def test_uk_postcode
47
+ assert_match /[ a-z]/, Faker::AddressUK.postcode
48
+ end
49
+
50
+ def test_us_state
51
+ assert_match /[ a-z]/, Faker::AddressUS.state
52
+ end
53
+
54
+ def test_us_state_abbr
55
+ assert_match /[A-Z]/, Faker::AddressUS.state_abbr
56
+ end
57
+
58
+ def test_zip_code
59
+ assert_match /[0-9]/, Faker::AddressUS.zip_code
60
+ end
61
+
62
+ def test_zip_code_frozen
63
+ assert Faker::AddressUS.zip_code.frozen? == false
64
+ end
65
+
66
+ def test_neighborhood
67
+ assert_match /[ a-z]+/, Faker::Address::neighborhood
68
+ end
69
+
70
+ def test_country
71
+ assert_match /[ a-z]+/, Faker::Address::country
72
+ end
73
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ # Author: wiseleyb<wiseleyb@gmail.com>
6
+ class TestAddressAU < Test::Unit::TestCase
7
+
8
+ def test_au_state_abbr
9
+ arr = Faker::AddressAU::STATE_ABBR.sort
10
+ assert arr = Faker::AddressAU::SUBURB.keys.sort
11
+ assert arr = Faker::AddressAU::POSTCODE.keys.sort
12
+ end
13
+
14
+ def test_au_state
15
+ assert_match /[ a-z]/, Faker::AddressAU.state
16
+ end
17
+
18
+ def test_au_state_abbr
19
+ assert_match /[A-Z]/, Faker::AddressAU.state_abbr
20
+ end
21
+
22
+ def test_au_suburb
23
+ assert_match /[a-zA-Z]/, Faker::AddressAU.suburb
24
+ end
25
+
26
+ def test_postcode
27
+ assert_match /\d{4}/, Faker::AddressAU.postcode
28
+ end
29
+
30
+ def test_full_address
31
+ assert_match /[\, a-z]/, Faker::AddressAU.full_address
32
+ end
33
+
34
+ def test_au_suburb_with_states
35
+ Faker::AddressAU::STATE_ABBR.each do |st_abbr|
36
+ assert_match /[a-zA-Z]/, Faker::AddressAU.suburb(st_abbr)
37
+ end
38
+ end
39
+
40
+ def test_au_suburb_with_state_and_postcodes
41
+ Faker::AddressAU::STATE_ABBR.each do |st_abbr|
42
+ p_code = Faker::AddressAU.postcode(st_abbr)
43
+ assert_match /[a-zA-Z]/, Faker::AddressAU.suburb(st_abbr, p_code)
44
+ end
45
+ end
46
+
47
+ def test_postcode_with_states
48
+ Faker::AddressAU::STATE_ABBR.each do |st_abbr|
49
+ assert_match /\d{4}/, Faker::AddressAU.postcode(st_abbr)
50
+ end
51
+ end
52
+
53
+ def test_full_address_with_states
54
+ Faker::AddressAU::STATE_ABBR.each do |st_abbr|
55
+ assert_match /[\, a-z]/, Faker::AddressAU.full_address(st_abbr)
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestAddressCA < Test::Unit::TestCase
6
+ def test_province
7
+ assert_match /[ a-z]/, Faker::AddressCA.province
8
+ end
9
+
10
+ def test_province_abbr
11
+ assert_match /[A-Z][A-Z]/, Faker::AddressCA.province_abbr
12
+ end
13
+
14
+ def test_postal_code
15
+ assert_match /[A-Z]\d[A-Z]\W\d[A-Z]\d/, Faker::AddressCA.postal_code
16
+ end
17
+ end
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestAddressDE < Test::Unit::TestCase
6
+ def test_city
7
+ assert_match /[ a-z]+/, Faker::AddressDE.city
8
+ end
9
+
10
+ def test_state
11
+ assert_match /[ a-z]/, Faker::AddressDE.state
12
+ end
13
+
14
+ def test_zip_code
15
+ assert_match /^\d{5}$/, Faker::AddressDE.zip_code
16
+ end
17
+
18
+ def test_street_name
19
+ assert_match /[ a-z]+/, Faker::AddressDE.street_name
20
+ end
21
+
22
+ def test_street_address
23
+ assert_match /[ a-z]+/, Faker::AddressDE.street_address
24
+ end
25
+ end
@@ -0,0 +1,26 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ # Author: guapolo github.com/guapolo
6
+ class TestAddressMX < Test::Unit::TestCase
7
+ def setup
8
+ @tester = Faker::AddressMX
9
+ end
10
+
11
+ def test_mx_state
12
+ assert_match /[ A-Za-z]/, @tester.state
13
+ end
14
+
15
+ def test_mx_state_abbr
16
+ assert_match /[A-Z]/, @tester.state_abbr
17
+ end
18
+
19
+ def test_postcode
20
+ assert_match /[0-9]/, @tester.zip_code
21
+ end
22
+
23
+ def test_mx_municipality
24
+ assert_match /[ a-z]/, @tester.municipality
25
+ end
26
+ end
@@ -0,0 +1,36 @@
1
+ # encoding: utf-8
2
+
3
+ require 'helper'
4
+
5
+ class TestAddressSE < Test::Unit::TestCase
6
+
7
+ ALPHA = /\A[[:alpha:]]+/
8
+ DIGIT = /\d{1}/
9
+
10
+ def test_se_city
11
+ assert_match ALPHA, Faker::AddressSE.city
12
+ end
13
+
14
+ def test_se_zip_code
15
+ assert_match(/\d{2}/, Faker::AddressSE.zip_code)
16
+ end
17
+
18
+ def test_countries
19
+ assert Faker::AddressSE::COUNTRIES.include?(Faker::AddressSE.random_country)
20
+ end
21
+
22
+ def test_se_full_address
23
+ address = Faker::AddressSE.full_address
24
+ assert_match ALPHA, address
25
+ assert_match DIGIT, address
26
+ assert_match(/SVERIGE/, address)
27
+ end
28
+
29
+ def test_se_zip_code_frozen
30
+ assert Faker::AddressSE.zip_code.frozen? == false
31
+ end
32
+
33
+ def test_se_full_address
34
+ assert_match(/[\, a-z]/, Faker::AddressSE.full_address)
35
+ end
36
+ end