ffaker 2.2.0 → 2.3.0
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.
- checksums.yaml +4 -4
- data/Changelog.md +34 -0
- data/README.md +4 -0
- data/REFERENCE.md +1153 -800
- data/Rakefile +23 -24
- data/ffaker.gemspec +12 -420
- data/lib/ffaker.rb +47 -7
- data/lib/ffaker/address.rb +11 -11
- data/lib/ffaker/address_au.rb +60 -60
- data/lib/ffaker/address_br.rb +5 -5
- data/lib/ffaker/address_ca.rb +7 -7
- data/lib/ffaker/address_ch.rb +1 -2
- data/lib/ffaker/address_ch_de.rb +1 -1
- data/lib/ffaker/address_ch_fr.rb +1 -1
- data/lib/ffaker/address_ch_it.rb +1 -1
- data/lib/ffaker/address_da.rb +5 -5
- data/lib/ffaker/address_de.rb +16 -12
- data/lib/ffaker/address_fi.rb +7 -8
- data/lib/ffaker/address_fr.rb +13 -13
- data/lib/ffaker/address_gr.rb +40 -0
- data/lib/ffaker/address_in.rb +12 -12
- data/lib/ffaker/address_kr.rb +87 -0
- data/lib/ffaker/address_mx.rb +409 -409
- data/lib/ffaker/address_nl.rb +17 -13
- data/lib/ffaker/address_ru.rb +6 -6
- data/lib/ffaker/address_se.rb +7 -8
- data/lib/ffaker/address_sn.rb +3 -3
- data/lib/ffaker/address_ua.rb +8 -8
- data/lib/ffaker/address_uk.rb +5 -5
- data/lib/ffaker/address_us.rb +9 -9
- data/lib/ffaker/airline.rb +16 -0
- data/lib/ffaker/avatar.rb +3 -3
- data/lib/ffaker/aws.rb +24 -0
- data/lib/ffaker/bacon_ipsum.rb +2 -2
- data/lib/ffaker/book.rb +45 -0
- data/lib/ffaker/boolean.rb +2 -2
- data/lib/ffaker/cheesy_lingo.rb +15 -12
- data/lib/ffaker/color.rb +54 -1
- data/lib/ffaker/color_ua.rb +1 -1
- data/lib/ffaker/company.rb +13 -11
- data/lib/ffaker/company_cn.rb +23 -0
- data/lib/ffaker/company_it.rb +4 -4
- data/lib/ffaker/company_se.rb +2 -2
- data/lib/ffaker/conference.rb +1 -1
- data/lib/ffaker/courses.rb +2 -3
- data/lib/ffaker/currency.rb +2 -2
- data/lib/ffaker/data/address_gr/city +79 -0
- data/lib/ffaker/data/address_gr/region +13 -0
- data/lib/ffaker/data/address_gr/street +100 -0
- data/lib/ffaker/data/address_kr/boroughs +29 -0
- data/lib/ffaker/data/address_kr/cities +51 -0
- data/lib/ffaker/data/airline/codes_list +209 -0
- data/lib/ffaker/data/airline/names_list +206 -0
- data/lib/ffaker/data/aws/ec2_instance_type +59 -0
- data/lib/ffaker/data/aws/ec2_reserved_instance_tenancy +3 -0
- data/lib/ffaker/data/aws/ec2_reserved_offering_type +6 -0
- data/lib/ffaker/data/aws/ec2_reserved_product_description +14 -0
- data/lib/ffaker/data/book/adj_and_adv +20 -0
- data/lib/ffaker/data/book/genres +369 -0
- data/lib/ffaker/data/book/nouns +36 -0
- data/lib/ffaker/data/book/prefixes +17 -0
- data/lib/ffaker/data/color/names_list +128 -0
- data/lib/ffaker/data/education/degree_prefix +274 -0
- data/lib/ffaker/data/education/degree_short_prefix +19 -0
- data/lib/ffaker/data/job_br/job_nouns +52 -0
- data/lib/ffaker/data/job_vn/job_nouns +191 -0
- data/lib/ffaker/data/lorem_ja/characters +101 -0
- data/lib/ffaker/data/lorem_ja/sentences +30 -0
- data/lib/ffaker/data/lorem_ja/sentences_end +21 -0
- data/lib/ffaker/data/lorem_ja/words +81 -0
- data/lib/ffaker/data/name/first_names_female +4275 -0
- data/lib/ffaker/data/name/first_names_male +1219 -0
- data/lib/ffaker/data/name_br/first_names_female +1068 -0
- data/lib/ffaker/data/name_br/first_names_male +607 -0
- data/lib/ffaker/data/name_br/last_names +52 -0
- data/lib/ffaker/data/name_gr/female_first_names +80 -0
- data/lib/ffaker/data/name_gr/female_last_names +45 -0
- data/lib/ffaker/data/name_gr/male_first_names +90 -0
- data/lib/ffaker/data/name_gr/male_last_names +57 -0
- data/lib/ffaker/data/name_kh/first_names +64 -0
- data/lib/ffaker/data/name_kh/last_names +71 -0
- data/lib/ffaker/data/name_kh/nick_names +30 -0
- data/lib/ffaker/data/name_then/first_names +292 -0
- data/lib/ffaker/data/name_then/last_names +63 -0
- data/lib/ffaker/data/name_then/nick_names +30 -0
- data/lib/ffaker/data/phone_number/phone_calling_code +205 -0
- data/lib/ffaker/data/sport/names +57 -24
- data/lib/ffaker/data/tweet/hashtag +58 -0
- data/lib/ffaker/data/youtube/video_ids +50 -0
- data/lib/ffaker/dizzle_ipsum.rb +2 -2
- data/lib/ffaker/education.rb +17 -16
- data/lib/ffaker/food.rb +5 -6
- data/lib/ffaker/gender.rb +4 -4
- data/lib/ffaker/gender_br.rb +17 -0
- data/lib/ffaker/gender_cn.rb +4 -4
- data/lib/ffaker/gender_kr.rb +4 -4
- data/lib/ffaker/geolocation.rb +26 -26
- data/lib/ffaker/healthcare_ipsum.rb +2 -2
- data/lib/ffaker/hipster_ipsum.rb +2 -2
- data/lib/ffaker/html_ipsum.rb +101 -81
- data/lib/ffaker/identification.rb +4 -4
- data/lib/ffaker/identification_br.rb +84 -0
- data/lib/ffaker/identification_es.rb +2 -2
- data/lib/ffaker/identification_es_cl.rb +7 -5
- data/lib/ffaker/identification_es_co.rb +9 -10
- data/lib/ffaker/identification_kr.rb +3 -4
- data/lib/ffaker/identification_mx.rb +27 -11
- data/lib/ffaker/internet.rb +26 -23
- data/lib/ffaker/internet_se.rb +21 -21
- data/lib/ffaker/job.rb +1 -1
- data/lib/ffaker/job_br.rb +12 -0
- data/lib/ffaker/job_cn.rb +1 -1
- data/lib/ffaker/job_fr.rb +3 -3
- data/lib/ffaker/job_ja.rb +2 -1
- data/lib/ffaker/job_kr.rb +1 -1
- data/lib/ffaker/job_vn.rb +13 -0
- data/lib/ffaker/locale.rb +2 -3
- data/lib/ffaker/lorem.rb +5 -5
- data/lib/ffaker/lorem_ar.rb +4 -4
- data/lib/ffaker/lorem_cn.rb +3 -3
- data/lib/ffaker/lorem_fr.rb +4 -4
- data/lib/ffaker/lorem_ja.rb +40 -0
- data/lib/ffaker/lorem_kr.rb +4 -4
- data/lib/ffaker/lorem_ua.rb +8 -11
- data/lib/ffaker/movie.rb +18 -20
- data/lib/ffaker/music.rb +4 -4
- data/lib/ffaker/name.rb +100 -11
- data/lib/ffaker/name_br.rb +37 -6
- data/lib/ffaker/name_cn.rb +2 -2
- data/lib/ffaker/name_cs.rb +10 -10
- data/lib/ffaker/name_da.rb +6 -6
- data/lib/ffaker/name_de.rb +5 -5
- data/lib/ffaker/name_fr.rb +4 -4
- data/lib/ffaker/name_ga.rb +4 -5
- data/lib/ffaker/name_gr.rb +60 -0
- data/lib/ffaker/name_it.rb +4 -4
- data/lib/ffaker/name_ja.rb +3 -3
- data/lib/ffaker/name_kh.rb +22 -0
- data/lib/ffaker/name_kr.rb +3 -3
- data/lib/ffaker/name_mx.rb +14 -14
- data/lib/ffaker/name_nb.rb +5 -5
- data/lib/ffaker/name_nl.rb +7 -7
- data/lib/ffaker/name_ph.rb +2 -2
- data/lib/ffaker/name_ru.rb +7 -8
- data/lib/ffaker/name_se.rb +5 -5
- data/lib/ffaker/name_sn.rb +23 -23
- data/lib/ffaker/name_th.rb +3 -3
- data/lib/ffaker/name_th_en.rb +26 -0
- data/lib/ffaker/name_ua.rb +8 -8
- data/lib/ffaker/name_vn.rb +4 -4
- data/lib/ffaker/nato_alphabet.rb +10 -10
- data/lib/ffaker/phone_number.rb +31 -21
- data/lib/ffaker/phone_number_au.rb +3 -3
- data/lib/ffaker/phone_number_br.rb +9 -8
- data/lib/ffaker/phone_number_ch.rb +7 -7
- data/lib/ffaker/phone_number_cu.rb +5 -5
- data/lib/ffaker/phone_number_de.rb +1 -1
- data/lib/ffaker/phone_number_fr.rb +4 -4
- data/lib/ffaker/phone_number_it.rb +2 -2
- data/lib/ffaker/phone_number_kr.rb +4 -4
- data/lib/ffaker/phone_number_mx.rb +4 -5
- data/lib/ffaker/phone_number_nl.rb +13 -13
- data/lib/ffaker/phone_number_se.rb +18 -19
- data/lib/ffaker/phone_number_sg.rb +8 -8
- data/lib/ffaker/phone_number_sn.rb +2 -2
- data/lib/ffaker/product.rb +18 -14
- data/lib/ffaker/skill.rb +3 -3
- data/lib/ffaker/sport.rb +1 -1
- data/lib/ffaker/ssn_se.rb +19 -20
- data/lib/ffaker/string.rb +21 -23
- data/lib/ffaker/time.rb +19 -7
- data/lib/ffaker/tweet.rb +59 -0
- data/lib/ffaker/unit.rb +12 -12
- data/lib/ffaker/unit_english.rb +34 -35
- data/lib/ffaker/unit_metric.rb +25 -25
- data/lib/ffaker/utils/array_utils.rb +12 -9
- data/lib/ffaker/utils/module_utils.rb +9 -6
- data/lib/ffaker/utils/random_utils.rb +33 -0
- data/lib/ffaker/vehicle.rb +21 -21
- data/lib/ffaker/venue.rb +1 -1
- data/lib/ffaker/youtube.rb +24 -0
- data/scripts/benchmark.rb +3 -3
- data/scripts/reference.rb +26 -23
- data/test/helper.rb +50 -0
- data/test/test_address.rb +40 -21
- data/test/test_address_au.rb +19 -9
- data/test/test_address_br.rb +9 -2
- data/test/test_address_ca.rb +7 -0
- data/test/test_address_ch.rb +6 -2
- data/test/test_address_ch_de.rb +7 -3
- data/test/test_address_ch_fr.rb +7 -3
- data/test/test_address_ch_it.rb +5 -1
- data/test/test_address_da.rb +18 -9
- data/test/test_address_de.rb +12 -5
- data/test/test_address_fi.rb +10 -3
- data/test/test_address_fr.rb +13 -0
- data/test/test_address_gr.rb +43 -0
- data/test/test_address_in.rb +20 -12
- data/test/test_address_kr.rb +14 -0
- data/test/test_address_mx.rb +12 -5
- data/test/test_address_nl.rb +11 -5
- data/test/test_address_ru.rb +11 -5
- data/test/test_address_se.rb +9 -3
- data/test/test_address_sn.rb +7 -1
- data/test/test_address_ua.rb +17 -10
- data/test/test_address_uk.rb +11 -3
- data/test/test_address_us.rb +15 -6
- data/test/test_airline.rb +17 -0
- data/test/test_array_utils.rb +51 -3
- data/test/test_avatar.rb +5 -1
- data/test/test_aws.rb +25 -0
- data/test/test_bacon_ipsum.rb +12 -6
- data/test/test_book.rb +41 -0
- data/test/test_boolean.rb +4 -0
- data/test/test_cheesy_lingo.rb +14 -10
- data/test/test_color.rb +126 -1
- data/test/test_color_ua.rb +5 -1
- data/test/test_company.rb +7 -0
- data/test/test_company_cn.rb +24 -0
- data/test/test_company_it.rb +7 -1
- data/test/test_company_se.rb +6 -0
- data/test/test_conference.rb +5 -2
- data/test/test_course_mathematiques.rb +5 -1
- data/test/test_course_philosophie.rb +5 -1
- data/test/test_currency.rb +12 -0
- data/test/test_dizzle_ipsum.rb +12 -6
- data/test/test_education.rb +9 -2
- data/test/test_faker.rb +8 -1
- data/test/test_food.rb +11 -4
- data/test/test_gender.rb +5 -1
- data/test/test_gender_br.rb +18 -0
- data/test/test_gender_cn.rb +5 -2
- data/test/test_gender_kr.rb +7 -3
- data/test/test_geolocation.rb +11 -8
- data/test/test_guid.rb +6 -1
- data/test/test_healthcare_ipsum.rb +13 -6
- data/test/test_hipster_ipsum.rb +13 -6
- data/test/test_html_ipsum.rb +28 -20
- data/test/test_identification.rb +9 -2
- data/test/test_identification_br.rb +46 -0
- data/test/test_identification_co.rb +7 -0
- data/test/test_identification_es.rb +5 -1
- data/test/test_identification_es_cl.rb +5 -1
- data/test/test_identification_es_mx.rb +7 -2
- data/test/test_identification_kr.rb +4 -0
- data/test/test_internet.rb +36 -5
- data/test/test_internet_se.rb +12 -4
- data/test/test_job.rb +4 -0
- data/test/test_job_br.rb +17 -0
- data/test/test_job_cn.rb +4 -0
- data/test/test_job_fr.rb +4 -0
- data/test/test_job_ja.rb +4 -0
- data/test/test_job_kr.rb +4 -0
- data/test/test_job_vn.rb +22 -0
- data/test/test_locale.rb +10 -4
- data/test/test_lorem.rb +18 -11
- data/test/test_lorem_ar.rb +16 -8
- data/test/test_lorem_cn.rb +9 -2
- data/test/test_lorem_fr.rb +16 -8
- data/test/test_lorem_ja.rb +81 -0
- data/test/test_lorem_kr.rb +17 -8
- data/test/test_lorem_ua.rb +15 -8
- data/test/test_module_utils.rb +2 -2
- data/test/test_movie.rb +5 -1
- data/test/test_music.rb +11 -4
- data/test/test_name.rb +114 -1
- data/test/test_name_br.rb +41 -2
- data/test/test_name_cn.rb +7 -0
- data/test/test_name_cs.rb +7 -0
- data/test/test_name_da.rb +13 -6
- data/test/test_name_de.rb +4 -0
- data/test/test_name_fr.rb +7 -0
- data/test/test_name_ga.rb +7 -0
- data/test/test_name_gr.rb +70 -0
- data/test/test_name_it.rb +7 -0
- data/test/test_name_ja.rb +7 -0
- data/test/test_name_kh.rb +32 -0
- data/test/test_name_kr.rb +7 -0
- data/test/test_name_mx.rb +9 -0
- data/test/test_name_nb.rb +8 -0
- data/test/test_name_nl.rb +4 -0
- data/test/test_name_ph.rb +7 -0
- data/test/test_name_ru.rb +10 -3
- data/test/test_name_se.rb +12 -4
- data/test/test_name_sn.rb +8 -0
- data/test/test_name_th.rb +7 -0
- data/test/test_name_th_en.rb +35 -0
- data/test/test_name_ua.rb +26 -17
- data/test/test_name_vn.rb +42 -0
- data/test/test_nato_alphabet.rb +15 -4
- data/test/test_phone_number.rb +24 -6
- data/test/test_phone_number_au.rb +17 -6
- data/test/test_phone_number_br.rb +22 -13
- data/test/test_phone_number_cu.rb +29 -18
- data/test/test_phone_number_da.rb +16 -7
- data/test/test_phone_number_de.rb +17 -9
- data/test/test_phone_number_kr.rb +9 -0
- data/test/test_phone_number_mx.rb +16 -8
- data/test/test_phone_number_nl.rb +9 -2
- data/test/test_phone_number_se.rb +12 -7
- data/test/test_phone_number_sg.rb +17 -9
- data/test/test_phone_number_sn.rb +12 -4
- data/test/test_products.rb +22 -0
- data/test/test_skill.rb +8 -2
- data/test/test_sports.rb +4 -0
- data/test/test_ssn.rb +3 -1
- data/test/test_ssn_mx.rb +6 -1
- data/test/test_ssn_se.rb +3 -0
- data/test/test_string.rb +28 -1
- data/test/test_time.rb +33 -2
- data/test/test_tweet.rb +59 -0
- data/test/test_units.rb +7 -0
- data/test/test_units_english.rb +9 -0
- data/test/test_units_metric.rb +9 -0
- data/test/test_vehicle.rb +24 -15
- data/test/test_venue.rb +5 -1
- data/test/test_youtube.rb +28 -0
- metadata +101 -5
- data/lib/ffaker/data/name/first_names +0 -3008
- data/lib/ffaker/data/name_br/first_names +0 -91
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestAirline < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::Airline, :name, :flight_number)
|
|
9
|
+
|
|
10
|
+
def test_name
|
|
11
|
+
assert_match(/\A.+\z/, FFaker::Airline.name)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_flight_number
|
|
15
|
+
assert_match(/\w{2,3} \d{1,4}\z/, FFaker::Airline.flight_number)
|
|
16
|
+
end
|
|
17
|
+
end
|
data/test/test_array_utils.rb
CHANGED
|
@@ -4,16 +4,18 @@ require 'helper'
|
|
|
4
4
|
require 'set'
|
|
5
5
|
|
|
6
6
|
class TestArrayUtils < Test::Unit::TestCase
|
|
7
|
+
include DeterministicHelper
|
|
8
|
+
|
|
7
9
|
def setup
|
|
8
|
-
@array = FFaker::ArrayUtils.const_array(
|
|
9
|
-
@elems = Set.new(
|
|
10
|
+
@array = FFaker::ArrayUtils.const_array('a'..'c')
|
|
11
|
+
@elems = Set.new('a'..'c')
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
def test_provides_a_way_of_freezing_the_elements_and_itself
|
|
13
15
|
assert @array.respond_to?(:freeze_all)
|
|
14
16
|
@array.freeze_all
|
|
15
17
|
assert @array.frozen?
|
|
16
|
-
@array.each { |e| assert e.frozen?
|
|
18
|
+
@array.each { |e| assert e.frozen? }
|
|
17
19
|
end
|
|
18
20
|
|
|
19
21
|
def test_provides_a_way_of_getting_a_random_element
|
|
@@ -49,4 +51,50 @@ class TestArrayUtils < Test::Unit::TestCase
|
|
|
49
51
|
|
|
50
52
|
assert different_arrangements > 0
|
|
51
53
|
end
|
|
54
|
+
|
|
55
|
+
def test_self_random_pick_is_deterministic
|
|
56
|
+
supress_warn_output do
|
|
57
|
+
array = Array.new(10) { rand(10) }
|
|
58
|
+
assert_deterministic { FFaker::ArrayUtils.random_pick(array, 3) }
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_self_rand_is_deterministic
|
|
63
|
+
supress_warn_output do
|
|
64
|
+
array = Array.new(10) { rand(10) }
|
|
65
|
+
assert_deterministic { FFaker::ArrayUtils.rand(array) }
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_self_shuffle_is_deterministic
|
|
70
|
+
array = Array.new(10) { rand(10) }
|
|
71
|
+
assert_deterministic { FFaker::ArrayUtils.shuffle(array) }
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_rand_is_deterministic
|
|
75
|
+
supress_warn_output do
|
|
76
|
+
assert_deterministic { @array.rand }
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def test_random_pick_is_deterministic
|
|
81
|
+
supress_warn_output do
|
|
82
|
+
assert_deterministic { @array.random_pick(2) }
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_shuffle_is_deterministic
|
|
87
|
+
assert_deterministic { @array.shuffle }
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
private
|
|
91
|
+
|
|
92
|
+
# Supress the deprecation warning that some methods output, so we get less
|
|
93
|
+
# noise in our test run.
|
|
94
|
+
def supress_warn_output
|
|
95
|
+
original_verbosity = $VERBOSE
|
|
96
|
+
$VERBOSE = nil
|
|
97
|
+
yield
|
|
98
|
+
$VERBOSE = original_verbosity
|
|
99
|
+
end
|
|
52
100
|
end
|
data/test/test_avatar.rb
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
require 'helper'
|
|
2
2
|
|
|
3
3
|
class TestAvatar < Test::Unit::TestCase
|
|
4
|
-
|
|
4
|
+
include DeterministicHelper
|
|
5
|
+
|
|
6
|
+
ROBOHASH = 'https://robohash.org'.freeze
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::Avatar, :image)
|
|
5
9
|
|
|
6
10
|
def setup
|
|
7
11
|
@tester = FFaker::Avatar
|
data/test/test_aws.rb
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestAWS < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::AWS, :instance_type)
|
|
9
|
+
|
|
10
|
+
def test_instance_type
|
|
11
|
+
assert_match(%r{\A[a-z]+\d\.\d*[a-z]+}, FFaker::AWS.instance_type)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_offering_type
|
|
15
|
+
assert_match(%r{\A[ a-zA-Z]+\z}i, FFaker::AWS.offering_type)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_instance_tenancy
|
|
19
|
+
assert_match(%r{\A(?:default|dedicated|host)+\z}i, FFaker::AWS.instance_tenancy)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_product_description
|
|
23
|
+
assert_match(%r{\A[ \/a-zA-Z\(\)]+\z}i, FFaker::AWS.product_description)
|
|
24
|
+
end
|
|
25
|
+
end
|
data/test/test_bacon_ipsum.rb
CHANGED
|
@@ -3,28 +3,34 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestBaconIpsum < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::BaconIpsum,
|
|
10
|
+
:paragraph, :sentence, :paragraphs, :sentences, :words, :word
|
|
11
|
+
)
|
|
6
12
|
|
|
7
13
|
def test_paragraph
|
|
8
|
-
assert_match
|
|
14
|
+
assert_match(/1\+|[ a-z]+/i, FFaker::BaconIpsum.paragraph)
|
|
9
15
|
end
|
|
10
16
|
|
|
11
17
|
def test_sentence
|
|
12
|
-
assert_match
|
|
18
|
+
assert_match(/1\+|[ a-z]+/i, FFaker::BaconIpsum.sentence)
|
|
13
19
|
end
|
|
14
20
|
|
|
15
21
|
def test_paragraphs
|
|
16
|
-
assert_match
|
|
22
|
+
assert_match(/1\+|[ a-z]+/i, FFaker::BaconIpsum.paragraphs.join(' '))
|
|
17
23
|
end
|
|
18
24
|
|
|
19
25
|
def test_sentences
|
|
20
|
-
assert_match
|
|
26
|
+
assert_match(/1\+|[ a-z]+/i, FFaker::BaconIpsum.sentences.join(' '))
|
|
21
27
|
end
|
|
22
28
|
|
|
23
29
|
def test_words
|
|
24
|
-
assert_match
|
|
30
|
+
assert_match(/1\+|[ a-z]+/i, FFaker::BaconIpsum.words.join(' '))
|
|
25
31
|
end
|
|
26
32
|
|
|
27
33
|
def test_word
|
|
28
|
-
assert_match
|
|
34
|
+
assert_match(/1\+|[a-z]+/i, FFaker::BaconIpsum.word)
|
|
29
35
|
end
|
|
30
36
|
end
|
data/test/test_book.rb
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestBook < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::Book,
|
|
10
|
+
:title, :genre, :author, :isbn, :description, :cover
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
def setup
|
|
14
|
+
@tester = FFaker::Book
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_title
|
|
18
|
+
assert_match(/[\sa-z]+/, @tester.title)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_genre
|
|
22
|
+
assert_match(%r([\w\s'\/]+), @tester.genre)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_author
|
|
26
|
+
assert_match(/[\sa-z]+/, @tester.author)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_isbn
|
|
30
|
+
assert_match(/[\d]+/, @tester.isbn)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_description
|
|
34
|
+
assert_match(/[\sa-z]+/, @tester.description)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_cover
|
|
38
|
+
assert_match(%r(\Ahttps:\/\/robohash\.org\/.+\.png\?size=300x300\z),
|
|
39
|
+
@tester.cover)
|
|
40
|
+
end
|
|
41
|
+
end
|
data/test/test_boolean.rb
CHANGED
data/test/test_cheesy_lingo.rb
CHANGED
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
require 'helper'
|
|
2
2
|
|
|
3
3
|
class TestCheesyLingo < Test::Unit::TestCase
|
|
4
|
+
include DeterministicHelper
|
|
4
5
|
|
|
5
6
|
TEST_REGEX = /\+1|[a-z]+/i
|
|
6
7
|
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::CheesyLingo,
|
|
10
|
+
:title, :word, :words, :sentence, :paragraph
|
|
11
|
+
)
|
|
7
12
|
|
|
8
13
|
def setup
|
|
9
14
|
@tester = FFaker::CheesyLingo
|
|
10
15
|
end
|
|
11
16
|
|
|
12
17
|
def test_title
|
|
13
|
-
assert_match
|
|
18
|
+
assert_match(TEST_REGEX, @tester.title)
|
|
14
19
|
end
|
|
15
20
|
|
|
16
21
|
def test_word
|
|
17
|
-
assert_match
|
|
22
|
+
assert_match(TEST_REGEX, @tester.word)
|
|
18
23
|
end
|
|
19
24
|
|
|
20
25
|
def test_words
|
|
21
|
-
assert_match
|
|
26
|
+
assert_match(TEST_REGEX, @tester.words(3).join(' '))
|
|
22
27
|
end
|
|
23
28
|
|
|
24
29
|
def test_sentence
|
|
25
|
-
assert_match
|
|
26
|
-
assert_match
|
|
30
|
+
assert_match(TEST_REGEX, @tester.sentence)
|
|
31
|
+
assert_match(/1\+|[ a-zA-Z]+./, @tester.sentence)
|
|
27
32
|
end
|
|
28
33
|
|
|
29
|
-
def test_paragraph #without passing count
|
|
30
|
-
assert_match
|
|
34
|
+
def test_paragraph # without passing count
|
|
35
|
+
assert_match(/\+|[a-zA-Z]*./, @tester.paragraph(1))
|
|
31
36
|
end
|
|
32
37
|
|
|
33
38
|
def test_paragraph_with_arg
|
|
34
|
-
assert_match
|
|
39
|
+
assert_match(/\+1|[a-zA-Z]+./, @tester.paragraph(3))
|
|
35
40
|
end
|
|
36
|
-
|
|
37
|
-
end
|
|
41
|
+
end
|
data/test/test_color.rb
CHANGED
|
@@ -3,7 +3,132 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestColor < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
VALID_RGB_REGEX = /\A([0-9]{1,3})\z/
|
|
9
|
+
VALID_OPACITY_REGEX = /^([0-9].[0-9]{1,2})$/
|
|
10
|
+
VALID_PERCENTAGE_REGEX = /^([0-9]{1,3}%)$/
|
|
11
|
+
|
|
12
|
+
assert_methods_are_deterministic(
|
|
13
|
+
FFaker::Color,
|
|
14
|
+
:name, :hex_code, :rgb_array, :rgb_list,
|
|
15
|
+
:rgba_array, :rgba_list, :hsl_array, :hsl_list,
|
|
16
|
+
:hsla_array, :hsla_list
|
|
17
|
+
)
|
|
18
|
+
|
|
6
19
|
def test_name
|
|
7
|
-
assert_match
|
|
20
|
+
assert_match(/\A[a-z]+\z/, FFaker::Color.name)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_hex_code
|
|
24
|
+
assert_match /\A\h{6}\z/, FFaker::Color.hex_code
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_rgb_array
|
|
28
|
+
fake_array = FFaker::Color.rgb_array
|
|
29
|
+
|
|
30
|
+
assert fake_array.size == 3
|
|
31
|
+
|
|
32
|
+
red_value = fake_array[0]
|
|
33
|
+
assert_match VALID_RGB_REGEX, red_value.to_s
|
|
34
|
+
assert red_value.between? 0, 255
|
|
35
|
+
|
|
36
|
+
green_value = fake_array[1]
|
|
37
|
+
assert_match VALID_RGB_REGEX, green_value.to_s
|
|
38
|
+
assert green_value.between? 0, 255
|
|
39
|
+
|
|
40
|
+
blue_value = fake_array[2]
|
|
41
|
+
assert_match VALID_RGB_REGEX, blue_value.to_s
|
|
42
|
+
assert blue_value.between? 0, 255
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_rgb_list
|
|
46
|
+
assert_match(
|
|
47
|
+
/\A([0-9]{1,3},[0-9]{1,3},[0-9]{1,3})\z/,
|
|
48
|
+
FFaker::Color.rgb_list
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def test_rgba_array
|
|
53
|
+
fake_array = FFaker::Color.rgba_array
|
|
54
|
+
|
|
55
|
+
assert fake_array.size == 4
|
|
56
|
+
|
|
57
|
+
red_value = fake_array[0]
|
|
58
|
+
assert_match VALID_RGB_REGEX, red_value.to_s
|
|
59
|
+
assert red_value.between? 0, 255
|
|
60
|
+
|
|
61
|
+
green_value = fake_array[1]
|
|
62
|
+
assert_match VALID_RGB_REGEX, green_value.to_s
|
|
63
|
+
assert green_value.between? 0, 255
|
|
64
|
+
|
|
65
|
+
blue_value = fake_array[2]
|
|
66
|
+
assert_match VALID_RGB_REGEX, blue_value.to_s
|
|
67
|
+
assert blue_value.between? 0, 255
|
|
68
|
+
|
|
69
|
+
opacity_value = fake_array[3]
|
|
70
|
+
assert_match VALID_OPACITY_REGEX, opacity_value.to_s
|
|
71
|
+
assert opacity_value.between? 0.0, 1.0
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_rgba_list
|
|
75
|
+
assert_match(
|
|
76
|
+
/^([0-9]{1,3},[0-9]{1,3},[0-9]{1,3}),([0-9].[0-9]{1,2})$/,
|
|
77
|
+
FFaker::Color.rgba_list
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def test_hsl_array
|
|
82
|
+
fake_array = FFaker::Color.hsl_array
|
|
83
|
+
|
|
84
|
+
assert fake_array.size == 3
|
|
85
|
+
|
|
86
|
+
hue_value = fake_array[0]
|
|
87
|
+
assert_match VALID_RGB_REGEX, hue_value.to_s
|
|
88
|
+
assert hue_value.between? 0, 360
|
|
89
|
+
|
|
90
|
+
saturation_value = fake_array[1]
|
|
91
|
+
assert_match VALID_PERCENTAGE_REGEX, saturation_value
|
|
92
|
+
assert saturation_value.delete('%').to_i.between? 0, 100
|
|
93
|
+
|
|
94
|
+
lightness_value = fake_array[2]
|
|
95
|
+
assert_match VALID_PERCENTAGE_REGEX, lightness_value
|
|
96
|
+
assert lightness_value.delete('%').to_i.between? 0, 100
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_hsl_list
|
|
100
|
+
assert_match(
|
|
101
|
+
/^([0-9]{1,3},[0-9]{1,3}%,[0-9]{1,3}%)$/,
|
|
102
|
+
FFaker::Color.hsl_list
|
|
103
|
+
)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_hsla_array
|
|
107
|
+
fake_array = FFaker::Color.hsla_array
|
|
108
|
+
|
|
109
|
+
assert fake_array.size == 4
|
|
110
|
+
|
|
111
|
+
hue_value = fake_array[0]
|
|
112
|
+
assert_match VALID_RGB_REGEX, hue_value.to_s
|
|
113
|
+
assert hue_value.between? 0, 360
|
|
114
|
+
|
|
115
|
+
saturation_value = fake_array[1]
|
|
116
|
+
assert_match VALID_PERCENTAGE_REGEX, saturation_value
|
|
117
|
+
assert saturation_value.delete('%').to_i.between? 0, 100
|
|
118
|
+
|
|
119
|
+
lightness_value = fake_array[2]
|
|
120
|
+
assert_match VALID_PERCENTAGE_REGEX, lightness_value
|
|
121
|
+
assert lightness_value.delete('%').to_i.between? 0, 100
|
|
122
|
+
|
|
123
|
+
opacity_value = fake_array[3]
|
|
124
|
+
assert_match VALID_OPACITY_REGEX, opacity_value.to_s
|
|
125
|
+
assert opacity_value.between? 0.0, 1.0
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def test_hsla_list
|
|
129
|
+
assert_match(
|
|
130
|
+
/^([0-9]{1,3},[0-9]{1,3}%,[0-9]{1,3}%,[0-9].[0-9]{1,2})$/,
|
|
131
|
+
FFaker::Color.hsla_list
|
|
132
|
+
)
|
|
8
133
|
end
|
|
9
134
|
end
|
data/test/test_color_ua.rb
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
5
|
class TestColorUA < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(FFaker::ColorUA, :name)
|
|
9
|
+
|
|
6
10
|
def test_name
|
|
7
|
-
assert_match
|
|
11
|
+
assert_match(/\A[а-яА-ЯіїєґІЇЄҐ’\-\s]+\z/, FFaker::ColorUA.name)
|
|
8
12
|
end
|
|
9
13
|
end
|
data/test/test_company.rb
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require 'helper'
|
|
4
|
+
|
|
5
|
+
class TestCompanyCN < Test::Unit::TestCase
|
|
6
|
+
include DeterministicHelper
|
|
7
|
+
|
|
8
|
+
assert_methods_are_deterministic(
|
|
9
|
+
FFaker::CompanyCN,
|
|
10
|
+
:name, :suffix, :type
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
def test_name
|
|
14
|
+
assert_match(/.{4,}公司\z/, FFaker::CompanyCN.name)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_suffix
|
|
18
|
+
assert_match(/公司\z/i, FFaker::CompanyCN.suffix)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_type
|
|
22
|
+
assert_match(/.{2,}/i, FFaker::CompanyCN.type)
|
|
23
|
+
end
|
|
24
|
+
end
|