ffaker 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|