ffaker 2.13.0 → 2.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +31 -0
  3. data/README.md +14 -5
  4. data/REFERENCE.md +1398 -1249
  5. data/Rakefile +3 -9
  6. data/ffaker.gemspec +14 -5
  7. data/lib/ffaker.rb +12 -6
  8. data/lib/ffaker/address_ch.rb +0 -2
  9. data/lib/ffaker/address_ch_de.rb +0 -2
  10. data/lib/ffaker/address_ch_fr.rb +0 -2
  11. data/lib/ffaker/address_ch_it.rb +0 -2
  12. data/lib/ffaker/address_da.rb +0 -2
  13. data/lib/ffaker/address_de.rb +0 -2
  14. data/lib/ffaker/address_fi.rb +0 -2
  15. data/lib/ffaker/address_fr.rb +5 -3
  16. data/lib/ffaker/address_gr.rb +0 -2
  17. data/lib/ffaker/address_id.rb +0 -2
  18. data/lib/ffaker/address_in.rb +0 -2
  19. data/lib/ffaker/address_ja.rb +0 -2
  20. data/lib/ffaker/address_nl.rb +1 -5
  21. data/lib/ffaker/address_ru.rb +0 -2
  22. data/lib/ffaker/address_se.rb +0 -2
  23. data/lib/ffaker/address_sn.rb +0 -2
  24. data/lib/ffaker/address_ua.rb +0 -2
  25. data/lib/ffaker/address_uk.rb +0 -2
  26. data/lib/ffaker/address_us.rb +0 -2
  27. data/lib/ffaker/{animals.rb → animal.rb} +1 -1
  28. data/lib/ffaker/{animals_cn.rb → animal_cn.rb} +0 -0
  29. data/lib/ffaker/animal_es.rb +12 -0
  30. data/lib/ffaker/{animals_us.rb → animal_us.rb} +0 -0
  31. data/lib/ffaker/bacon_ipsum.rb +0 -2
  32. data/lib/ffaker/code.rb +17 -0
  33. data/lib/ffaker/company_ja.rb +24 -0
  34. data/lib/ffaker/data/address_fr/region +27 -0
  35. data/lib/ffaker/data/animal_es/common_names +135 -0
  36. data/lib/ffaker/data/filesystem/extension +31 -31
  37. data/lib/ffaker/data/food_pl/diary +14 -0
  38. data/lib/ffaker/data/food_pl/fermented +13 -0
  39. data/lib/ffaker/data/food_pl/fruits +34 -0
  40. data/lib/ffaker/data/food_pl/herbs +20 -0
  41. data/lib/ffaker/data/food_pl/meats +9 -0
  42. data/lib/ffaker/data/food_pl/preserves +10 -0
  43. data/lib/ffaker/data/food_pl/spices +26 -0
  44. data/lib/ffaker/data/food_pl/vegetables +45 -0
  45. data/lib/ffaker/data/freedom_ipsum/freedom_words +161 -0
  46. data/lib/ffaker/data/lorem/words +0 -67
  47. data/lib/ffaker/data/phone_number_ja/four_disit_area_codes +41 -0
  48. data/lib/ffaker/data/phone_number_ja/one_disit_area_codes +3 -0
  49. data/lib/ffaker/data/phone_number_ja/three_disit_area_codes +296 -0
  50. data/lib/ffaker/data/phone_number_ja/two_disit_area_codes +48 -0
  51. data/lib/ffaker/dizzle_ipsum.rb +0 -2
  52. data/lib/ffaker/education.rb +4 -8
  53. data/lib/ffaker/education_cn.rb +3 -6
  54. data/lib/ffaker/filesystem.rb +7 -7
  55. data/lib/ffaker/food_pl.rb +65 -0
  56. data/lib/ffaker/freedom_ipsum.rb +20 -0
  57. data/lib/ffaker/healthcare_ipsum.rb +0 -2
  58. data/lib/ffaker/hipster_ipsum.rb +0 -2
  59. data/lib/ffaker/identification_es_cl.rb +0 -2
  60. data/lib/ffaker/identification_es_co.rb +0 -1
  61. data/lib/ffaker/identification_in.rb +15 -0
  62. data/lib/ffaker/identification_kr.rb +1 -1
  63. data/lib/ffaker/identification_mx.rb +1 -3
  64. data/lib/ffaker/identification_tw.rb +23 -0
  65. data/lib/ffaker/image.rb +8 -11
  66. data/lib/ffaker/internet.rb +1 -1
  67. data/lib/ffaker/internet_se.rb +1 -3
  68. data/lib/ffaker/lorem_cn.rb +0 -1
  69. data/lib/ffaker/name_cs.rb +0 -2
  70. data/lib/ffaker/name_da.rb +0 -2
  71. data/lib/ffaker/name_de.rb +0 -2
  72. data/lib/ffaker/name_mx.rb +2 -4
  73. data/lib/ffaker/name_nb.rb +0 -2
  74. data/lib/ffaker/name_nl.rb +0 -2
  75. data/lib/ffaker/name_ph.rb +0 -2
  76. data/lib/ffaker/name_ru.rb +0 -2
  77. data/lib/ffaker/name_se.rb +0 -2
  78. data/lib/ffaker/name_ua.rb +0 -2
  79. data/lib/ffaker/phone_number_br.rb +2 -2
  80. data/lib/ffaker/phone_number_da.rb +0 -1
  81. data/lib/ffaker/phone_number_ja.rb +88 -0
  82. data/lib/ffaker/product.rb +1 -1
  83. data/lib/ffaker/ssn.rb +1 -3
  84. data/lib/ffaker/string.rb +5 -5
  85. data/lib/ffaker/unit.rb +9 -10
  86. data/lib/ffaker/unit_english.rb +18 -21
  87. data/lib/ffaker/unit_metric.rb +15 -18
  88. data/lib/ffaker/utils/unique_utils.rb +0 -2
  89. data/lib/ffaker/vehicle.rb +1 -1
  90. data/lib/version.rb +5 -0
  91. data/scripts/benchmark.rb +10 -11
  92. data/test/helper.rb +3 -3
  93. data/test/test_address_au.rb +2 -2
  94. data/test/test_address_br.rb +1 -1
  95. data/test/test_address_fi.rb +2 -2
  96. data/test/test_address_fr.rb +1 -1
  97. data/test/test_address_id.rb +1 -1
  98. data/test/test_address_ja.rb +1 -1
  99. data/test/test_address_nl.rb +1 -1
  100. data/test/test_address_se.rb +2 -2
  101. data/test/test_animal_es.rb +17 -0
  102. data/test/test_array_utils.rb +0 -1
  103. data/test/test_aws.rb +1 -1
  104. data/test/test_bank.rb +2 -3
  105. data/test/test_book.rb +4 -4
  106. data/test/test_code.rb +22 -1
  107. data/test/test_company_ja.rb +28 -0
  108. data/test/{test_faker.rb → test_ffaker.rb} +5 -1
  109. data/test/test_filesystem.rb +11 -3
  110. data/test/test_food_pl.rb +61 -0
  111. data/test/test_freedom_ipsum.rb +21 -0
  112. data/test/test_geolocation.rb +2 -2
  113. data/test/test_healthcare_ru.rb +1 -1
  114. data/test/test_html_ipsum.rb +1 -1
  115. data/test/test_identification_co.rb +1 -1
  116. data/test/test_identification_es_cl.rb +1 -1
  117. data/test/test_identification_in.rb +20 -0
  118. data/test/test_identification_tw.rb +17 -0
  119. data/test/test_image.rb +4 -4
  120. data/test/test_internet_se.rb +1 -1
  121. data/test/test_lorem.rb +4 -0
  122. data/test/test_lorem_fr.rb +9 -7
  123. data/test/test_lorem_pl.rb +1 -1
  124. data/test/test_lorem_ru.rb +1 -1
  125. data/test/test_lorem_ua.rb +1 -1
  126. data/test/test_music.rb +4 -4
  127. data/test/test_phone_number_ja.rb +63 -0
  128. data/test/test_ssn_se.rb +3 -3
  129. data/test/test_string.rb +3 -3
  130. data/test/test_time.rb +2 -3
  131. data/test/test_tweet.rb +4 -4
  132. data/test/test_vehicle.rb +2 -2
  133. metadata +214 -162
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'set'
4
-
5
3
  module FFaker
6
4
  class UniqueUtils
7
5
  def initialize(generator, max_retries)
@@ -6,7 +6,7 @@ module FFaker
6
6
  extend self
7
7
 
8
8
  DRIVETRAINS = %w[4WD 4X4 AWD FWD RWD].freeze
9
- YEARS = [*'1900'..(::Time.now.year + 1).to_s].freeze
9
+ YEARS = Array('1900'..(::Time.now.year + 1).to_s).freeze
10
10
  TRANSMISSIONS_ABBR = %w[AT MT AM CVT].freeze
11
11
  CYLINDERS = %w[2 5 6 8].freeze
12
12
 
data/lib/version.rb ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FFaker
4
+ VERSION = '2.18.0'
5
+ end
data/scripts/benchmark.rb CHANGED
@@ -1,22 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rubygems'
4
3
  require 'benchmark'
5
4
 
6
- N = 10_000
5
+ NAMES_COUNT = 10_000
7
6
 
8
7
  def run(name)
9
- require name
10
8
  Benchmark.bm do |rep|
11
- rep.report("generating #{N} names (#{name} #{FFaker::VERSION})") do
12
- N.times do
13
- FFaker::Name.name
14
- end
9
+ rep.report("generating #{NAMES_COUNT} names (#{name})") do
10
+ mod = name == 'ffaker' ? FFaker : Faker
11
+ NAMES_COUNT.times { mod::Name.name }
15
12
  end
16
13
  end
17
- $stdout.flush
18
- exit(0)
19
14
  end
20
15
 
21
- fork { run('faker') }; Process.wait
22
- fork { run('ffaker') }; Process.wait
16
+ %w[faker ffaker].each do |gem_name|
17
+ require gem_name
18
+
19
+ fork { run(gem_name) }
20
+ Process.wait
21
+ end
data/test/helper.rb CHANGED
@@ -45,9 +45,9 @@ module DeterministicHelper
45
45
  end
46
46
  end
47
47
 
48
- def assert_between(got, from, to, exclude_end: false)
49
- assert_greater_than_or_equal_to got, from
50
- public_send "assert_less_than#{'_or_equal_to' unless exclude_end}", got, to
48
+ def assert_between(got, range)
49
+ assert_greater_than_or_equal_to got, range.begin
50
+ public_send "assert_less_than#{'_or_equal_to' unless range.exclude_end?}", got, range.end
51
51
  end
52
52
 
53
53
  def assert_random(original_block, *args)
@@ -33,7 +33,7 @@ class TestAddressAU < Test::Unit::TestCase
33
33
  end
34
34
 
35
35
  def test_full_address
36
- assert_match(/[\, a-z]/, FFaker::AddressAU.full_address)
36
+ assert_match(/[, a-z]/, FFaker::AddressAU.full_address)
37
37
  end
38
38
 
39
39
  def test_au_suburb_with_states
@@ -60,7 +60,7 @@ class TestAddressAU < Test::Unit::TestCase
60
60
 
61
61
  def test_full_address_with_states
62
62
  FFaker::AddressAU::STATE_ABBR.each do |st_abbr|
63
- assert_match(/[\, a-z]/, FFaker::AddressAU.full_address(st_abbr))
63
+ assert_match(/[, a-z]/, FFaker::AddressAU.full_address(st_abbr))
64
64
  assert_deterministic { FFaker::AddressAU.full_address(st_abbr) }
65
65
  end
66
66
  end
@@ -32,6 +32,6 @@ class TestAddressBR < Test::Unit::TestCase
32
32
 
33
33
  def test_street
34
34
  prefixes = FFaker::AddressBR::STREET_PREFIX
35
- assert_match(/(#{prefixes.join('|')})( [\p{Alpha}]+){1,2}/, FFaker::AddressBR.street)
35
+ assert_match(/(#{prefixes.join('|')})( \p{Alpha}+){1,2}/, FFaker::AddressBR.street)
36
36
  end
37
37
  end
@@ -5,7 +5,7 @@ require 'helper'
5
5
  class TestAddressFI < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- ALPHA = /\A[\p{Alpha}]+/.freeze
8
+ ALPHA = /\A\p{Alpha}+/.freeze
9
9
  DIGIT = /\d{1}/.freeze
10
10
 
11
11
  assert_methods_are_deterministic(
@@ -30,7 +30,7 @@ class TestAddressFI < Test::Unit::TestCase
30
30
  assert_match(ALPHA, address)
31
31
  assert_match(DIGIT, address)
32
32
  assert_match(/SUOMI/, address)
33
- assert_match(/[\, a-z]/, address)
33
+ assert_match(/[, a-z]/, address)
34
34
  end
35
35
 
36
36
  def test_fi_zip_code_frozen
@@ -7,6 +7,6 @@ class TestAddressFR < Test::Unit::TestCase
7
7
 
8
8
  assert_methods_are_deterministic(
9
9
  FFaker::AddressFR,
10
- :city, :full_address, :street_name, :postal_code
10
+ :city, :full_address, :street_name, :postal_code, :region
11
11
  )
12
12
  end
@@ -33,7 +33,7 @@ class TestAddressID < Test::Unit::TestCase
33
33
  def test_street
34
34
  prefixes = FFaker::AddressID::STREET_PREFIX
35
35
  common_street_names = FFaker::AddressID::COMMON_STREET_NAMES
36
- regex = /\A(#{prefixes.join('|')})\.(\s(#{common_street_names.join('|')}))\,\sNo\.\s\d+\z/
36
+ regex = /\A(#{prefixes.join('|')})\.(\s(#{common_street_names.join('|')})),\sNo\.\s\d+\z/
37
37
  assert_match(regex, FFaker::AddressID.street)
38
38
  end
39
39
  end
@@ -13,7 +13,7 @@ class TestAddressJA < Test::Unit::TestCase
13
13
  )
14
14
 
15
15
  def test_postal_code
16
- assert_match(/^\d{3}\-\d{4}$/, FFaker::AddressJA.postal_code)
16
+ assert_match(/^\d{3}-\d{4}$/, FFaker::AddressJA.postal_code)
17
17
  end
18
18
 
19
19
  def test_land_number
@@ -23,7 +23,7 @@ class TestAddressNL < Test::Unit::TestCase
23
23
  end
24
24
 
25
25
  def test_zip_code
26
- assert_match(/^\d{4}\s\w{2}$/, @tester.zip_code)
26
+ assert_match(/\A[1-9]\d{3} [A-RT-Z][A-Z]\z/, @tester.zip_code)
27
27
  end
28
28
 
29
29
  def test_street_name
@@ -5,7 +5,7 @@ require 'helper'
5
5
  class TestAddressSE < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- ALPHA = /\A[\p{Alpha}]+/.freeze
8
+ ALPHA = /\A\p{Alpha}+/.freeze
9
9
  DIGIT = /\d{1}/.freeze
10
10
 
11
11
  assert_methods_are_deterministic(
@@ -30,7 +30,7 @@ class TestAddressSE < Test::Unit::TestCase
30
30
  assert_match(ALPHA, address)
31
31
  assert_match(DIGIT, address)
32
32
  assert_match(/SVERIGE/, address)
33
- assert_match(/[\, a-z]/, address)
33
+ assert_match(/[, a-z]/, address)
34
34
  end
35
35
 
36
36
  def test_se_zip_code_frozen
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'helper'
4
+
5
+ class TestAnimalsES < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(FFaker::AnimalES, :common_name)
9
+
10
+ def setup
11
+ @tester = FFaker::AnimalES
12
+ end
13
+
14
+ def test_name
15
+ assert_include @tester::COMMON_NAMES, @tester.common_name
16
+ end
17
+ end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'helper'
4
- require 'set'
5
4
 
6
5
  class TestArrayUtils < Test::Unit::TestCase
7
6
  include DeterministicHelper
data/test/test_aws.rb CHANGED
@@ -20,6 +20,6 @@ class TestAWS < Test::Unit::TestCase
20
20
  end
21
21
 
22
22
  def test_product_description
23
- assert_match(%r{\A[ \/a-zA-Z\(\)]+\z}i, FFaker::AWS.product_description)
23
+ assert_match(%r{\A[ /a-zA-Z()]+\z}i, FFaker::AWS.product_description)
24
24
  end
25
25
  end
data/test/test_bank.rb CHANGED
@@ -33,7 +33,7 @@ class TestBank < Test::Unit::TestCase
33
33
  date_today = ::DateTime.now
34
34
 
35
35
  assert_random_between(
36
- date_today.strftime('%y'), date_today.next_year(5).strftime('%y')
36
+ date_today.strftime('%y')..date_today.next_year(5).strftime('%y')
37
37
  ) do
38
38
  @tester.card_expiry_date.split('/').pop
39
39
  end
@@ -41,8 +41,7 @@ class TestBank < Test::Unit::TestCase
41
41
  year_range = 4
42
42
  year_latest = 8
43
43
  assert_random_between(
44
- date_today.prev_year(year_latest + year_range).strftime('%y'),
45
- date_today.prev_year(year_latest).strftime('%y')
44
+ date_today.prev_year(year_latest + year_range).strftime('%y')..date_today.prev_year(year_latest).strftime('%y')
46
45
  ) do
47
46
  @tester.card_expiry_date(year_range: year_range, year_latest: year_latest).split('/').pop
48
47
  end
data/test/test_book.rb CHANGED
@@ -19,7 +19,7 @@ class TestBook < Test::Unit::TestCase
19
19
  end
20
20
 
21
21
  def test_genre
22
- assert_match(%r{[\w\s'\/]+}, @tester.genre)
22
+ assert_match(%r{[\w\s'/]+}, @tester.genre)
23
23
  end
24
24
 
25
25
  def test_author
@@ -27,7 +27,7 @@ class TestBook < Test::Unit::TestCase
27
27
  end
28
28
 
29
29
  def test_isbn
30
- assert_match(/[\d]+/, @tester.isbn)
30
+ assert_match(/\d+/, @tester.isbn)
31
31
  end
32
32
 
33
33
  def test_description
@@ -35,12 +35,12 @@ class TestBook < Test::Unit::TestCase
35
35
  end
36
36
 
37
37
  def test_cover
38
- assert_match(%r{\Ahttps:\/\/robohash\.org\/.+\.png\?size=300x300\z},
38
+ assert_match(%r{\Ahttps://robohash\.org/.+\.png\?size=300x300\z},
39
39
  @tester.cover)
40
40
  end
41
41
 
42
42
  def test_orly_cover
43
- assert_match(%r{\Ahttps:\/\/orly-appstore\.herokuapp\.com\/generate},
43
+ assert_match(%r{\Ahttps://orly-appstore\.herokuapp\.com/generate},
44
44
  @tester.orly_cover)
45
45
  end
46
46
  end
data/test/test_code.rb CHANGED
@@ -5,7 +5,28 @@ require 'helper'
5
5
  class TestCode < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
- assert_methods_are_deterministic(FFaker::Code, :ean)
8
+ assert_methods_are_deterministic(FFaker::Code, :ean, :npi)
9
+
10
+ def test_npi_legacy_regexp
11
+ assert FFaker::Code.npi(legacy: true).match(/\A(1|2)[0-9]{9}\z/)
12
+ end
13
+
14
+ def test_npi
15
+ FFaker::Random.seed = 523_456_789
16
+ assert FFaker::Code.npi == '7411850515'
17
+ end
18
+
19
+ def test_deterministic_npi
20
+ FFaker::Random.seed = 42
21
+ v = FFaker::Code.npi
22
+ FFaker::Random.reset!
23
+ assert v == FFaker::Code.npi
24
+ end
25
+
26
+ def test_valid_npi
27
+ FFaker::Random.seed = 123_456_789
28
+ assert FFaker::Code.npi == '2410167607'
29
+ end
9
30
 
10
31
  def test_ean
11
32
  assert FFaker::Code.ean.match(/^\d{13}$/)
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'helper'
4
+
5
+ class TestCompanyJA < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::CompanyJA,
10
+ :name, :position
11
+ )
12
+
13
+ def setup
14
+ @tester = FFaker::CompanyJA
15
+ end
16
+
17
+ def test_name
18
+ assert_match(japanese_regex(''), @tester.name)
19
+ end
20
+
21
+ def test_position
22
+ assert_match(japanese_regex(''), @tester.position)
23
+ end
24
+
25
+ def japanese_regex(word)
26
+ /\A(?:\p{Hiragana}|\p{Katakana}|[ー-]|[一-龠々])+#{word}\z/
27
+ end
28
+ end
@@ -2,9 +2,13 @@
2
2
 
3
3
  require 'helper'
4
4
 
5
- class TestFaker < Test::Unit::TestCase
5
+ class TestFFaker < Test::Unit::TestCase
6
6
  include DeterministicHelper
7
7
 
8
+ def test_version
9
+ assert FFaker::VERSION.is_a?(String)
10
+ end
11
+
8
12
  def test_numerify
9
13
  assert FFaker.numerify('###').match(/\d{3}/)
10
14
  assert_deterministic { FFaker.numerify('###') }
@@ -15,14 +15,22 @@ class TestFakerFilesystem < Test::Unit::TestCase
15
15
  end
16
16
 
17
17
  def test_extension
18
- assert @tester.extension.match(/(flac|mp3|wav|bmp|gif|jpeg|jpg|png|tiff|css|csv|html|js|json|txt|mp4|avi|mov|webm|doc|docx|xls|xlsx|ppt|pptx|odt|ods|odp|pages|numbers|key|pdf)/)
18
+ assert_match /\A(?:flac|mp3|wav|bmp|gif|jpeg|jpg|png|tiff|css|csv|html|js|
19
+ json|txt|mp4|avi|mov|webm|doc|docx|xls|xlsx|ppt|pptx|odt|
20
+ ods|odp|pages|numbers|key|pdf)\z/x,
21
+ @tester.extension
19
22
  end
20
23
 
21
24
  def test_mime_type_format
22
- assert @tester.mime_type.match(%r{(.*)/(.*)+})
25
+ assert_match %r{\A\w+/.+\z}, @tester.mime_type
26
+ end
27
+
28
+ def test_directory
29
+ assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\z}, @tester.directory
23
30
  end
24
31
 
25
32
  def test_file_name
26
- assert @tester.file_name.match(%r{([a-z\-_]+)(\\|/)([a-z\-_]+)\.([a-z]+)})
33
+ assert_match %r{\A(?:[a-z_-]+[\\/])+[a-z_-]+\.\w{2,4}\z},
34
+ @tester.file_name
27
35
  end
28
36
  end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'helper'
4
+
5
+ class TestFakerFoodPL < Test::Unit::TestCase
6
+ include DeterministicHelper
7
+
8
+ assert_methods_are_deterministic(
9
+ FFaker::FoodPL,
10
+ :food, :processed, :unprocessed, :vegetable, :fruit,
11
+ :meat, :herb, :spice, :fermented, :diary, :preserves
12
+ )
13
+
14
+ def setup
15
+ @tester = FFaker::FoodPL
16
+ end
17
+
18
+ def test_food
19
+ assert_match(/\w+/, @tester.food)
20
+ end
21
+
22
+ def test_processed
23
+ assert_match(/\w+/, @tester.processed)
24
+ end
25
+
26
+ def test_unprocessed
27
+ assert_match(/\w+/, @tester.unprocessed)
28
+ end
29
+
30
+ def test_vegetable
31
+ assert_include(@tester::VEGETABLES, @tester.vegetable)
32
+ end
33
+
34
+ def test_fruit
35
+ assert_include(@tester::FRUITS, @tester.fruit)
36
+ end
37
+
38
+ def test_herb
39
+ assert_include(@tester::HERBS, @tester.herb)
40
+ end
41
+
42
+ def test_spice
43
+ assert_include(@tester::SPICES, @tester.spice)
44
+ end
45
+
46
+ def test_meat
47
+ assert_include(@tester::MEATS, @tester.meat)
48
+ end
49
+
50
+ def test_fermented
51
+ assert_include(@tester::FERMENTED, @tester.fermented)
52
+ end
53
+
54
+ def test_diary
55
+ assert_include(@tester::DIARY, @tester.diary)
56
+ end
57
+
58
+ def test_preserves
59
+ assert_include(@tester::PRESERVES, @tester.preserves)
60
+ end
61
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'helper'
4
+ class TestFreedomIpsum < Test::Unit::TestCase
5
+ include DeterministicHelper
6
+
7
+ assert_methods_are_deterministic(
8
+ FFaker::FreedomIpsum,
9
+ :word, :words
10
+ )
11
+
12
+ TEST_REGEX = /[a-z0-9 -]+/i.freeze
13
+
14
+ def test_words
15
+ assert_match(TEST_REGEX, FFaker::FreedomIpsum.words.join(' '))
16
+ end
17
+
18
+ def test_word
19
+ assert_match(TEST_REGEX, FFaker::FreedomIpsum.word)
20
+ end
21
+ end