experian-data-dictionary 1.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.
Files changed (152) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.pryrc +3 -0
  4. data/.rspec +2 -0
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/Gemfile +12 -0
  8. data/Gemfile.lock +61 -0
  9. data/README.rdoc +43 -0
  10. data/Rakefile +32 -0
  11. data/docs/BCM_Sample_Experian.csv +1 -0
  12. data/docs/DataDictionary_NonProfit_Experian.pdf +0 -0
  13. data/experian_data_dictionary.gemspec +21 -0
  14. data/lib/element_numbers/en_0000.rb +23 -0
  15. data/lib/element_numbers/en_0100.rb +34 -0
  16. data/lib/element_numbers/en_0103.rb +19 -0
  17. data/lib/element_numbers/en_0107.rb +24 -0
  18. data/lib/element_numbers/en_0108.rb +448 -0
  19. data/lib/element_numbers/en_0110.rb +20 -0
  20. data/lib/element_numbers/en_0112.rb +17 -0
  21. data/lib/element_numbers/en_0113.rb +22 -0
  22. data/lib/element_numbers/en_0118.rb +20 -0
  23. data/lib/element_numbers/en_0119.rb +16 -0
  24. data/lib/element_numbers/en_0130.rb +17 -0
  25. data/lib/element_numbers/en_0131.rb +18 -0
  26. data/lib/element_numbers/en_0132.rb +24 -0
  27. data/lib/element_numbers/en_0133.rb +16 -0
  28. data/lib/element_numbers/en_0134.rb +22 -0
  29. data/lib/element_numbers/en_0135.rb +22 -0
  30. data/lib/element_numbers/en_0136.rb +22 -0
  31. data/lib/element_numbers/en_0137.rb +22 -0
  32. data/lib/element_numbers/en_0138.rb +22 -0
  33. data/lib/element_numbers/en_0139.rb +22 -0
  34. data/lib/element_numbers/en_0140.rb +22 -0
  35. data/lib/element_numbers/en_0141.rb +22 -0
  36. data/lib/element_numbers/en_0155.rb +18 -0
  37. data/lib/element_numbers/en_0156.rb +18 -0
  38. data/lib/element_numbers/en_0160.rb +29 -0
  39. data/lib/element_numbers/en_0162.rb +26 -0
  40. data/lib/element_numbers/en_0164.rb +28 -0
  41. data/lib/element_numbers/en_0174.rb +21 -0
  42. data/lib/element_numbers/en_0711.rb +40 -0
  43. data/lib/element_numbers/en_0715.rb +22 -0
  44. data/lib/element_numbers/en_0716.rb +37 -0
  45. data/lib/element_numbers/en_0717.rb +41 -0
  46. data/lib/element_numbers/en_310M.rb +76 -0
  47. data/lib/element_numbers/en_8502.rb +40 -0
  48. data/lib/element_numbers/en_8503.rb +40 -0
  49. data/lib/element_numbers/en_8504.rb +40 -0
  50. data/lib/element_numbers/en_8505.rb +40 -0
  51. data/lib/element_numbers/en_8519.rb +40 -0
  52. data/lib/element_numbers/en_8525.rb +40 -0
  53. data/lib/element_numbers/en_8526.rb +40 -0
  54. data/lib/element_numbers/en_8528.rb +40 -0
  55. data/lib/element_numbers/en_8531.rb +40 -0
  56. data/lib/element_numbers/en_8532.rb +40 -0
  57. data/lib/element_numbers/en_8533.rb +40 -0
  58. data/lib/element_numbers/en_8538.rb +40 -0
  59. data/lib/element_numbers/en_8574.rb +40 -0
  60. data/lib/element_numbers/en_A107.rb +24 -0
  61. data/lib/element_numbers/en_B000.rb +20 -0
  62. data/lib/element_numbers/en_B2185.rb +17 -0
  63. data/lib/element_numbers/en_B3010.rb +17 -0
  64. data/lib/element_numbers/en_B5011.rb +17 -0
  65. data/lib/element_numbers/en_B5013.rb +17 -0
  66. data/lib/element_numbers/en_B5014.rb +17 -0
  67. data/lib/element_numbers/en_B5016.rb +17 -0
  68. data/lib/element_numbers/en_D105N.rb +29 -0
  69. data/lib/element_numbers/en_D200.rb +19 -0
  70. data/lib/element_numbers/en_F031.rb +29 -0
  71. data/lib/element_numbers/en_G2001.rb +15 -0
  72. data/lib/element_numbers/en_G2514.rb +26 -0
  73. data/lib/element_numbers/en_G2516.rb +26 -0
  74. data/lib/element_numbers/en_G2601.rb +14 -0
  75. data/lib/element_numbers/en_G2602.rb +19 -0
  76. data/lib/element_numbers/en_G2603.rb +25 -0
  77. data/lib/element_numbers/en_GE06.rb +28 -0
  78. data/lib/element_numbers/en_L000.rb +29 -0
  79. data/lib/element_numbers/en_P213E.rb +36 -0
  80. data/lib/element_numbers/en_P213H.rb +262 -0
  81. data/lib/element_numbers/en_P213W.rb +35 -0
  82. data/lib/element_numbers/en_P400.rb +47 -0
  83. data/lib/element_numbers/en_T200.rb +20 -0
  84. data/lib/element_numbers/en_V000.rb +18 -0
  85. data/lib/element_numbers/en_Y000.rb +20 -0
  86. data/lib/experian.rb +40 -0
  87. data/spec/functional/en_0000_spec.rb +24 -0
  88. data/spec/functional/en_0100_spec.rb +34 -0
  89. data/spec/functional/en_0103_spec.rb +20 -0
  90. data/spec/functional/en_0107_spec.rb +21 -0
  91. data/spec/functional/en_0108_spec.rb +504 -0
  92. data/spec/functional/en_0110_spec.rb +22 -0
  93. data/spec/functional/en_0112_spec.rb +19 -0
  94. data/spec/functional/en_0113_spec.rb +25 -0
  95. data/spec/functional/en_0118_spec.rb +23 -0
  96. data/spec/functional/en_0119_spec.rb +19 -0
  97. data/spec/functional/en_0130_spec.rb +21 -0
  98. data/spec/functional/en_0131_spec.rb +22 -0
  99. data/spec/functional/en_0132_spec.rb +18 -0
  100. data/spec/functional/en_0133_spec.rb +16 -0
  101. data/spec/functional/en_0134_spec.rb +27 -0
  102. data/spec/functional/en_0135_spec.rb +27 -0
  103. data/spec/functional/en_0136_spec.rb +27 -0
  104. data/spec/functional/en_0137_spec.rb +27 -0
  105. data/spec/functional/en_0138_spec.rb +27 -0
  106. data/spec/functional/en_0139_spec.rb +27 -0
  107. data/spec/functional/en_0140_spec.rb +27 -0
  108. data/spec/functional/en_0141_spec.rb +27 -0
  109. data/spec/functional/en_0155_spec.rb +19 -0
  110. data/spec/functional/en_0156_spec.rb +19 -0
  111. data/spec/functional/en_0160_spec.rb +22 -0
  112. data/spec/functional/en_0162_spec.rb +19 -0
  113. data/spec/functional/en_0164_spec.rb +22 -0
  114. data/spec/functional/en_0174_spec.rb +21 -0
  115. data/spec/functional/en_0711_spec.rb +21 -0
  116. data/spec/functional/en_0715_spec.rb +24 -0
  117. data/spec/functional/en_0716_spec.rb +24 -0
  118. data/spec/functional/en_0717_spec.rb +21 -0
  119. data/spec/functional/en_310M_spec.rb +78 -0
  120. data/spec/functional/en_8502_spec.rb +22 -0
  121. data/spec/functional/en_8503_spec.rb +22 -0
  122. data/spec/functional/en_8504_spec.rb +23 -0
  123. data/spec/functional/en_8505_spec.rb +22 -0
  124. data/spec/functional/en_8519_spec.rb +22 -0
  125. data/spec/functional/en_8525_spec.rb +22 -0
  126. data/spec/functional/en_8526_spec.rb +22 -0
  127. data/spec/functional/en_A107_spec.rb +24 -0
  128. data/spec/functional/en_B2185_spec.rb +18 -0
  129. data/spec/functional/en_B3010_spec.rb +18 -0
  130. data/spec/functional/en_B5011_spec.rb +18 -0
  131. data/spec/functional/en_B5013_spec.rb +18 -0
  132. data/spec/functional/en_B5014_spec.rb +18 -0
  133. data/spec/functional/en_B5016_spec.rb +18 -0
  134. data/spec/functional/en_D105N_spec.rb +30 -0
  135. data/spec/functional/en_D200_spec.rb +21 -0
  136. data/spec/functional/en_F031_spec.rb +25 -0
  137. data/spec/functional/en_G2001_spec.rb +17 -0
  138. data/spec/functional/en_G2514_spec.rb +21 -0
  139. data/spec/functional/en_G2516_spec.rb +21 -0
  140. data/spec/functional/en_G2602_spec.rb +18 -0
  141. data/spec/functional/en_G2603_spec.rb +21 -0
  142. data/spec/functional/en_L000_spec.rb +16 -0
  143. data/spec/functional/en_P213E_spec.rb +19 -0
  144. data/spec/functional/en_P213H_spec.rb +19 -0
  145. data/spec/functional/en_P213W_spec.rb +19 -0
  146. data/spec/functional/en_P400_spec.rb +17 -0
  147. data/spec/functional/en_T200_spec.rb +23 -0
  148. data/spec/functional/en_V000_spec.rb +18 -0
  149. data/spec/functional/en_Y000_spec.rb +20 -0
  150. data/spec/functional/experian_spec.rb +27 -0
  151. data/spec/spec_helper.rb +23 -0
  152. metadata +259 -0
@@ -0,0 +1,35 @@
1
+ module Experian
2
+ class DataDictionary
3
+
4
+ # Net Worth V3
5
+ def self.en_p213w_description
6
+ "Net Worth is defined as a household's total financial assets minus its liabilities. Assets include financial holdings such as deposit accounts, investments and home value. Liabilities include loans, mortgages and credit card debt."
7
+ end
8
+
9
+ def self.en_p213w(key)
10
+ code = {
11
+ '1' => 'Extremely Likely (Household level code)',
12
+ '2' => 'Highly Likely (Zip 4 level code)',
13
+ '3' => 'Likely (Zip level code)'
14
+ }
15
+ values = {
16
+ '01' => '$0 - $24,999',
17
+ '02' => '$25,000 - $49,999',
18
+ '03' => '$50,000 - $74,999',
19
+ '04' => '$75,000 - $99,999',
20
+ '05' => '$100,000 - $149,999',
21
+ '06' => '$150,000 - $249,999',
22
+ '07' => '$250,000 - $499,999',
23
+ '08' => '$500,000 - $749,999',
24
+ '09' => '$750,000 - $999,999',
25
+ '10' => '$1,000,000+',
26
+ '00' => 'Unknown / Not Attempted',
27
+ '99' => 'Unknown / Default'
28
+ }
29
+
30
+ return 'Unknown' if key.size != 3 or code[key[0]].nil? or values[key[1..2]].nil?
31
+ [values[key[1..2]], code[key[0]]].join(' - ')
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,47 @@
1
+ module Experian
2
+ class DataDictionary
3
+
4
+ # GreenAware
5
+ def self.en_p400_description
6
+ "GreenAware Segmentation targeting system includes attitudes, opinions, lifestyle, buying behavior, and media usage. Based on the distinctive mindset of consumers towards the environment, we can better
7
+ understand four distinct consumer segments:
8
+ 1. Behavioral Greens: This group of people thinks and acts green, holds negative attitudes toward products that pollute, incorporate green practices on a regular basis.
9
+ 2. Think Greens: This group of people thinks green but does not necessarily act green.
10
+ 3. Potential Greens: They neither behave nor think along particularly environmentally conscious lines, and remain on the fence about key green issues.
11
+ 4. True Browns: these groups of people are not environmentally conscious, and may in fact have negative attitudes about green movement.
12
+ "
13
+ end
14
+
15
+ # GreenAware Tiers
16
+ def self.en_p400a_description
17
+ "GreenAware Segmentation targeting system includes attitudes, opinions, lifestyle, buying behavior, and media usage based on the distinctive mindset of consumers toward the Environment. GreenAware Tiers offers
18
+ ten levels of additional ranking detail for each of the four GreenAware segments which include: Behavioral Greens, Think Greens, Potential Greens and True Browns. The higher the number within the index, the
19
+ more likely the prospect will fit the profile within that segment.
20
+ GreenAware and GreenAware Tiers are created utilizing ConsumerView demographics and Simmons Market Research data and offer an even higher level of refinement to improve targeting, prospecting and overall
21
+ campaign effectiveness."
22
+ end
23
+
24
+ def self.en_p400(key)
25
+ values = {
26
+ '1' => 'Behavioral Greens',
27
+ '2' => 'Think Greens',
28
+ '3' => 'Potential Greens',
29
+ '4' => 'True Browns',
30
+ '0' => 'Unknown'
31
+ }
32
+ key.empty? ? 'Unknown' : values[key]
33
+ end
34
+
35
+ def self.en_p400a(key)
36
+ values = {
37
+ '01' => 'thru 10 Behavioral Greens',
38
+ '11' => 'thru 20Think Greens',
39
+ '21' => 'thru 30Potential Greens',
40
+ '31' => 'thru 40True Browns',
41
+ '00' => 'Unknown'
42
+ }
43
+ key.empty? ? 'Unknown' : values[key]
44
+ end
45
+
46
+ end
47
+ end
@@ -0,0 +1,20 @@
1
+ module Experian
2
+ class DataDictionary
3
+
4
+ # Discretionary Spend Estimate
5
+ def self.en_t200_description
6
+ "Discretionary Spend Estimate predicts the dollar estimate of annual spend on non-essential, discretionary expenses such as household furniture, alcohol and tobacco, donations, dining out, education, reading, personal care and entertainment (fees, audio/visual equipment, toys, hobbies, pets, playground equipment and other equipment). Represents an actual dollar amount."
7
+ end
8
+
9
+ def self.en_t200(key)
10
+ values = {
11
+ '4' => 'Zip+4 level data',
12
+ 'L' => 'Living unit level data',
13
+ 'Z' => 'Zip level data'
14
+ }
15
+ return 'Unknown' if key.size != 6 or values[key[0]].nil? or key[1..6].to_i < 888 or key[1..6].to_i > 87900
16
+ [values[key[0]], [key[1..6]]].join(' - ')
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ module Experian
2
+ class DataDictionary
3
+
4
+ # New Median Mandatory Append
5
+ def self.en_v000_description
6
+ "The New Median mandatory append is required when any data from the New Median file is appended. It consists of a match level."
7
+ end
8
+
9
+ def self.en_v000(key)
10
+ values = {
11
+ 'Z' => 'Zip Level Match',
12
+ '4' => 'Zip +4 Level Match'
13
+ }
14
+ key.empty? ? 'Non-match' : values[key]
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,20 @@
1
+ module Experian
2
+ class DataDictionary
3
+
4
+ # Census Demographic Match Level Mandatory Append
5
+ def self.en_y000_description
6
+ "The Census Demographic Match Level mandatory append is required when any 2000 Census demographic data is appended. It consists of a match level."
7
+ end
8
+
9
+ def self.en_y000(key)
10
+ values = {
11
+ 'S' => 'Census State',
12
+ 'C' => 'Census County',
13
+ 'T' => 'Census Tract',
14
+ 'B' => 'Census Block Group'
15
+ }
16
+ key.empty? ? 'Non-match' : values[key]
17
+ end
18
+
19
+ end
20
+ end
data/lib/experian.rb ADDED
@@ -0,0 +1,40 @@
1
+ EXPERIAN_LIB_DIR = File.dirname(__FILE__)
2
+ Dir["#{EXPERIAN_LIB_DIR}/element_numbers/*.rb"].each { |f| require(f) }
3
+
4
+ module Experian
5
+
6
+ class DataDictionary
7
+
8
+ def self.lookup(column, key)
9
+ self.send("en_#{column.to_s.downcase}", key.to_s.strip)
10
+ end
11
+
12
+ def self.description(column)
13
+ self.send("en_#{column.to_s.downcase}_description")
14
+ end
15
+
16
+ def self.method_missing(method, *args, &block)
17
+ method_parts = method.to_s.split('_')
18
+ if (2..3) === method_parts.size and method_parts[0] == 'en'
19
+ column = method_parts[1]
20
+ if /^[0-9]{1,3}$/ =~ column
21
+ column = "%04d" % column
22
+ new_method = method_parts.size == 3 ? "en_#{column}_description".to_sym : "en_#{column}".to_sym
23
+ elsif /[a-z]$/ =~ column
24
+ letters = column.match(/[a-z]+$/)[0]
25
+ column = "%04d" % column.to_i
26
+ new_method = method_parts.size == 3 ? "en_#{column}#{letters}_description".to_sym : "en_#{column}#{letters}".to_sym
27
+ end
28
+ if self.methods.include?(new_method)
29
+ return self.send(new_method, *args, &block)
30
+ else
31
+ super(new_method, *args, &block)
32
+ end
33
+ else
34
+ super(method, *args, &block)
35
+ end
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,24 @@
1
+ require File.join(Dir.pwd, 'spec', 'spec_helper')
2
+
3
+ describe 'Experian::DataDictionary 0000' do
4
+
5
+ context 'valid lookup' do
6
+ it { expect( Experian::DataDictionary.lookup('0000','H') ).to eq('Household Match') }
7
+ it { expect( Experian::DataDictionary.lookup('0000','F') ).to eq('Household Match') }
8
+ it { expect( Experian::DataDictionary.lookup('0000','P') ).to eq('Person Match') }
9
+ it { expect( Experian::DataDictionary.lookup('0000','I') ).to eq('Person Match') }
10
+ it { expect( Experian::DataDictionary.lookup('0000','G') ).to eq('Geographic or Area Level Match') }
11
+ it { expect( Experian::DataDictionary.lookup('0000','E') ).to eq('Geographic or Area Level Match') }
12
+ it { expect( Experian::DataDictionary.lookup('0000','N') ).to eq('Non-match') }
13
+ it { expect( Experian::DataDictionary.lookup('0000','') ).to eq('Non-match') }
14
+ it { expect( Experian::DataDictionary.lookup('0000',' ') ).to eq('Non-match') }
15
+ end
16
+
17
+
18
+ context 'invalid lookup' do
19
+ it { expect( Experian::DataDictionary.lookup('0000','D') ).to be_nil }
20
+ it { expect( Experian::DataDictionary.lookup('0000','GG') ).to be_nil }
21
+ it { expect( Experian::DataDictionary.lookup('0000','DOG') ).to be_nil }
22
+ end
23
+
24
+ end
@@ -0,0 +1,34 @@
1
+ require File.join(Dir.pwd, 'spec', 'spec_helper')
2
+
3
+ describe 'Experian::DataDictionary 0100' do
4
+
5
+ context 'valid lookup' do
6
+ it { expect( Experian::DataDictionary.lookup('0100','198412') ).to eq('12/1984') }
7
+ it { expect( Experian::DataDictionary.lookup('0100','19931') ).to eq('1/1993') }
8
+ it { expect( Experian::DataDictionary.lookup('0100','19684') ).to eq('4/1968') }
9
+ end
10
+
11
+
12
+ context 'invalid lookup' do
13
+ it { expect( Experian::DataDictionary.lookup('0100','0') ).to eq('0') }
14
+ end
15
+
16
+ end
17
+
18
+ describe 'Experian::DataDictionary 0100c' do
19
+
20
+ context 'valid lookup' do
21
+ it { expect( Experian::DataDictionary.lookup('0100c','e99') ).to eq('99 - Exact age') }
22
+ it { expect( Experian::DataDictionary.lookup('0100c','i50') ).to eq('50 - Estimated age') }
23
+ it { expect( Experian::DataDictionary.lookup('0100c','u') ).to eq(' - Unknown age') }
24
+
25
+ end
26
+
27
+
28
+ context 'invalid lookup' do
29
+ it { expect( Experian::DataDictionary.lookup('0100c','D') ).to be_nil }
30
+ it { expect( Experian::DataDictionary.lookup('0100c','GG') ).to be_nil }
31
+ it { expect( Experian::DataDictionary.lookup('0100c','DOG') ).to be_nil }
32
+ end
33
+
34
+ end
@@ -0,0 +1,20 @@
1
+ require File.join(Dir.pwd, 'spec', 'spec_helper')
2
+
3
+ describe 'Experian::DataDictionary 0103' do
4
+
5
+ context 'valid lookup' do
6
+ it { expect( Experian::DataDictionary.lookup('0103','M') ).to eq('Male') }
7
+ it { expect( Experian::DataDictionary.lookup('0103','F') ).to eq('Female') }
8
+ it { expect( Experian::DataDictionary.lookup('0103','B') ).to eq('Both') }
9
+ it { expect( Experian::DataDictionary.lookup('0103','U') ).to eq('Unknown') }
10
+ end
11
+
12
+
13
+ context 'invalid lookup' do
14
+ it { expect( Experian::DataDictionary.lookup('0103','FF') ).to be_nil }
15
+ it { expect( Experian::DataDictionary.lookup('0103','0') ).to be_nil }
16
+ it { expect( Experian::DataDictionary.lookup('0103','A') ).to be_nil }
17
+ it { expect( Experian::DataDictionary.lookup('0103','R') ).to be_nil }
18
+ end
19
+
20
+ end
@@ -0,0 +1,21 @@
1
+ require File.join(Dir.pwd, 'spec', 'spec_helper')
2
+
3
+ describe 'Experian::DataDictionary 0107A' do
4
+
5
+ context 'valid lookup' do
6
+ it { expect( Experian::DataDictionary.lookup('0107A','1M') ).to eq('Married - Extremely Likely') }
7
+ it { expect( Experian::DataDictionary.lookup('0107A','1S') ).to eq('Single - Extremely Likely') }
8
+ it { expect( Experian::DataDictionary.lookup('0107A','5S') ).to eq('Single - Likely') }
9
+ it { expect( Experian::DataDictionary.lookup('0107A','5M') ).to eq('Married - Likely') }
10
+ it { expect( Experian::DataDictionary.lookup('0107A','0U') ).to eq('Unknown Status - Unknown') }
11
+ it { expect( Experian::DataDictionary.lookup('0107A','0') ).to eq('Unknown') }
12
+ end
13
+
14
+
15
+ context 'invalid lookup' do
16
+ it { expect( Experian::DataDictionary.lookup('0107A','D') ).to eq('Unknown') }
17
+ it { expect( Experian::DataDictionary.lookup('0107A','GG') ).to eq('Unknown') }
18
+ it { expect( Experian::DataDictionary.lookup('0107A','DOG') ).to eq('Unknown') }
19
+ end
20
+
21
+ end
@@ -0,0 +1,504 @@
1
+ require File.join(Dir.pwd, 'spec', 'spec_helper')
2
+
3
+ describe 'Experian::DataDictionary 0108c' do
4
+
5
+ context 'valid lookup' do
6
+ it { expect( Experian::DataDictionary.lookup('0108c','00') ).to eq('Unknown') }
7
+ it { expect( Experian::DataDictionary.lookup('0108c','01') ).to eq('Mexico') }
8
+ it { expect( Experian::DataDictionary.lookup('0108c','02') ).to eq('Cuba') }
9
+ it { expect( Experian::DataDictionary.lookup('0108c','03') ).to eq('Puerto Rico') }
10
+ it { expect( Experian::DataDictionary.lookup('0108c','04') ).to eq('Nicaragua') }
11
+ it { expect( Experian::DataDictionary.lookup('0108c','05') ).to eq('Dominican Republic') }
12
+ it { expect( Experian::DataDictionary.lookup('0108c','06') ).to eq('Colombia') }
13
+ it { expect( Experian::DataDictionary.lookup('0108c','07') ).to eq('Honduras') }
14
+ it { expect( Experian::DataDictionary.lookup('0108c','08') ).to eq('Guatemala') }
15
+ it { expect( Experian::DataDictionary.lookup('0108c','09') ).to eq('El Salvador') }
16
+ it { expect( Experian::DataDictionary.lookup('0108c','10') ).to eq('Costa Rica') }
17
+ it { expect( Experian::DataDictionary.lookup('0108c','11') ).to eq('Panama') }
18
+ it { expect( Experian::DataDictionary.lookup('0108c','12') ).to eq('Ecuador') }
19
+ it { expect( Experian::DataDictionary.lookup('0108c','13') ).to eq('Venezuela') }
20
+ it { expect( Experian::DataDictionary.lookup('0108c','14') ).to eq('Argentina') }
21
+ it { expect( Experian::DataDictionary.lookup('0108c','15') ).to eq('Chile') }
22
+ it { expect( Experian::DataDictionary.lookup('0108c','16') ).to eq('Peru') }
23
+ it { expect( Experian::DataDictionary.lookup('0108c','17') ).to eq('Bolivia') }
24
+ it { expect( Experian::DataDictionary.lookup('0108c','18') ).to eq('Uruguay') }
25
+ it { expect( Experian::DataDictionary.lookup('0108c','19') ).to eq('Paraguay') }
26
+ it { expect( Experian::DataDictionary.lookup('0108c','20') ).to eq('Spain') }
27
+ # Missing 21 on Documentation
28
+ it { expect( Experian::DataDictionary.lookup('0108c','22') ).to eq('Brazil') }
29
+ it { expect( Experian::DataDictionary.lookup('0108c',' ') ).to eq('Unknown') }
30
+ end
31
+
32
+
33
+ context 'invalid lookup' do
34
+ it { expect( Experian::DataDictionary.lookup('0108c','F') ).to be_nil }
35
+ it { expect( Experian::DataDictionary.lookup('0108c','HE') ).to be_nil }
36
+ it { expect( Experian::DataDictionary.lookup('0108c','GG') ).to be_nil }
37
+ it { expect( Experian::DataDictionary.lookup('0108c','DOG') ).to be_nil }
38
+ end
39
+ end
40
+
41
+ describe 'Experian::DataDictionary 0108d' do
42
+
43
+ context 'valid lookup' do
44
+ it { expect( Experian::DataDictionary.lookup('0108d','00') ).to eq('Unknown') }
45
+ it { expect( Experian::DataDictionary.lookup('0108d','01') ).to eq('English') }
46
+ it { expect( Experian::DataDictionary.lookup('0108d','02') ).to eq('Scottish') }
47
+ it { expect( Experian::DataDictionary.lookup('0108d','03') ).to eq('Danish') }
48
+ it { expect( Experian::DataDictionary.lookup('0108d','04') ).to eq('Swedish') }
49
+ it { expect( Experian::DataDictionary.lookup('0108d','05') ).to eq('Norwegian') }
50
+ it { expect( Experian::DataDictionary.lookup('0108d','06') ).to eq('Finnish') }
51
+ it { expect( Experian::DataDictionary.lookup('0108d','07') ).to eq('Icelandic') }
52
+ it { expect( Experian::DataDictionary.lookup('0108d','08') ).to eq('Dutch') }
53
+ it { expect( Experian::DataDictionary.lookup('0108d','09') ).to eq('Belgian') }
54
+ it { expect( Experian::DataDictionary.lookup('0108d','10') ).to eq('German') }
55
+ it { expect( Experian::DataDictionary.lookup('0108d','11') ).to eq('Austrian') }
56
+ it { expect( Experian::DataDictionary.lookup('0108d','12') ).to eq('Hungarian') }
57
+ it { expect( Experian::DataDictionary.lookup('0108d','13') ).to eq('Czech') }
58
+ it { expect( Experian::DataDictionary.lookup('0108d','14') ).to eq('Slovak') }
59
+ it { expect( Experian::DataDictionary.lookup('0108d','15') ).to eq('Irish') }
60
+ it { expect( Experian::DataDictionary.lookup('0108d','16') ).to eq('Welsh') }
61
+ it { expect( Experian::DataDictionary.lookup('0108d','17') ).to eq('French') }
62
+ it { expect( Experian::DataDictionary.lookup('0108d','18') ).to eq('Swiss') }
63
+ it { expect( Experian::DataDictionary.lookup('0108d','19') ).to eq('Italian') }
64
+ it { expect( Experian::DataDictionary.lookup('0108d','20') ).to eq('Hispanic') }
65
+ it { expect( Experian::DataDictionary.lookup('0108d','21') ).to eq('Portuguese') }
66
+ it { expect( Experian::DataDictionary.lookup('0108d','22') ).to eq('Polish') }
67
+ it { expect( Experian::DataDictionary.lookup('0108d','23') ).to eq('Estonian') }
68
+ it { expect( Experian::DataDictionary.lookup('0108d','24') ).to eq('Latvian') }
69
+ it { expect( Experian::DataDictionary.lookup('0108d','25') ).to eq('Lithuanian') }
70
+ it { expect( Experian::DataDictionary.lookup('0108d','26') ).to eq('Ukrainian') }
71
+ it { expect( Experian::DataDictionary.lookup('0108d','27') ).to eq('Georgian') }
72
+ it { expect( Experian::DataDictionary.lookup('0108d','28') ).to eq('Byelorussian') }
73
+ it { expect( Experian::DataDictionary.lookup('0108d','29') ).to eq('Armenian') }
74
+ it { expect( Experian::DataDictionary.lookup('0108d','30') ).to eq('Russian') }
75
+ it { expect( Experian::DataDictionary.lookup('0108d','31') ).to eq('Turkish') }
76
+ it { expect( Experian::DataDictionary.lookup('0108d','32') ).to eq('Kurdish') }
77
+ it { expect( Experian::DataDictionary.lookup('0108d','33') ).to eq('Greek') }
78
+ it { expect( Experian::DataDictionary.lookup('0108d','34') ).to eq('Persian') }
79
+ it { expect( Experian::DataDictionary.lookup('0108d','35') ).to eq('Moldovan') }
80
+ it { expect( Experian::DataDictionary.lookup('0108d','36') ).to eq('Bulgarian') }
81
+ it { expect( Experian::DataDictionary.lookup('0108d','37') ).to eq('Romanian') }
82
+ it { expect( Experian::DataDictionary.lookup('0108d','38') ).to eq('Albanian') }
83
+ it { expect( Experian::DataDictionary.lookup('0108d','39') ).to eq('Native American') }
84
+ it { expect( Experian::DataDictionary.lookup('0108d','40') ).to eq('Slovenian') }
85
+ it { expect( Experian::DataDictionary.lookup('0108d','41') ).to eq('Croatian') }
86
+ it { expect( Experian::DataDictionary.lookup('0108d','42') ).to eq('Serbian') }
87
+ it { expect( Experian::DataDictionary.lookup('0108d','43') ).to eq('Bosniak') }
88
+ it { expect( Experian::DataDictionary.lookup('0108d','44') ).to eq('Azerbaijani') }
89
+ it { expect( Experian::DataDictionary.lookup('0108d','45') ).to eq('Kazakh') }
90
+ it { expect( Experian::DataDictionary.lookup('0108d','46') ).to eq('Afghan') }
91
+ it { expect( Experian::DataDictionary.lookup('0108d','47') ).to eq('Pakistani') }
92
+ it { expect( Experian::DataDictionary.lookup('0108d','48') ).to eq('Bangladeshi') }
93
+ it { expect( Experian::DataDictionary.lookup('0108d','49') ).to eq('Indonesian') }
94
+ it { expect( Experian::DataDictionary.lookup('0108d','50') ).to eq('Indian') }
95
+ it { expect( Experian::DataDictionary.lookup('0108d','51') ).to eq('Burmese (Myanmar)') }
96
+ it { expect( Experian::DataDictionary.lookup('0108d','52') ).to eq('Mongolian') }
97
+ it { expect( Experian::DataDictionary.lookup('0108d','53') ).to eq('Chinese') }
98
+ #No documentation for 54 and 55
99
+ it { expect( Experian::DataDictionary.lookup('0108d','56') ).to eq('Korean') }
100
+ it { expect( Experian::DataDictionary.lookup('0108d','57') ).to eq('Japanese') }
101
+ it { expect( Experian::DataDictionary.lookup('0108d','58') ).to eq('Thai') }
102
+ it { expect( Experian::DataDictionary.lookup('0108d','59') ).to eq('Malay') }
103
+ it { expect( Experian::DataDictionary.lookup('0108d','60') ).to eq('Laotian') }
104
+ it { expect( Experian::DataDictionary.lookup('0108d','61') ).to eq('Khmer') }
105
+ it { expect( Experian::DataDictionary.lookup('0108d','62') ).to eq('Vietnamese') }
106
+ it { expect( Experian::DataDictionary.lookup('0108d','63') ).to eq('Sri Lankan') }
107
+ it { expect( Experian::DataDictionary.lookup('0108d','64') ).to eq('Uzbek') }
108
+ it { expect( Experian::DataDictionary.lookup('0108d','65') ).to eq('Other Asian') }
109
+ it { expect( Experian::DataDictionary.lookup('0108d','66') ).to eq('Jewish') }
110
+ it { expect( Experian::DataDictionary.lookup('0108d','67') ).to eq('Aleut') }
111
+ it { expect( Experian::DataDictionary.lookup('0108d','68') ).to eq('Hebrew') }
112
+ #No documentation for 69
113
+ it { expect( Experian::DataDictionary.lookup('0108d','70') ).to eq('Arab') }
114
+ # No documentation for 71
115
+ it { expect( Experian::DataDictionary.lookup('0108d','72') ).to eq('Turkmen') }
116
+ it { expect( Experian::DataDictionary.lookup('0108d','73') ).to eq('Tajik') }
117
+ it { expect( Experian::DataDictionary.lookup('0108d','74') ).to eq('Kirghiz') }
118
+ it { expect( Experian::DataDictionary.lookup('0108d','75') ).to eq('Saudi') }
119
+ it { expect( Experian::DataDictionary.lookup('0108d','76') ).to eq('Iraqi') }
120
+ it { expect( Experian::DataDictionary.lookup('0108d','77') ).to eq('Libyan') }
121
+ it { expect( Experian::DataDictionary.lookup('0108d','78') ).to eq('Egyptian') }
122
+ it { expect( Experian::DataDictionary.lookup('0108d','79') ).to eq('Rwandan') }
123
+ it { expect( Experian::DataDictionary.lookup('0108d','80') ).to eq('Tongan') }
124
+ it { expect( Experian::DataDictionary.lookup('0108d','81') ).to eq('Senegalese') }
125
+ it { expect( Experian::DataDictionary.lookup('0108d','82') ).to eq('Malawian') }
126
+ it { expect( Experian::DataDictionary.lookup('0108d','83') ).to eq('Sudanese') }
127
+ it { expect( Experian::DataDictionary.lookup('0108d','84') ).to eq('Moroccan') }
128
+ it { expect( Experian::DataDictionary.lookup('0108d','85') ).to eq('African American') }
129
+ it { expect( Experian::DataDictionary.lookup('0108d','86') ).to eq('Kenyan') }
130
+ it { expect( Experian::DataDictionary.lookup('0108d','87') ).to eq('Nigerian (Nigeria)') }
131
+ it { expect( Experian::DataDictionary.lookup('0108d','88') ).to eq('Ghanaian') }
132
+ it { expect( Experian::DataDictionary.lookup('0108d','89') ).to eq('Zambian') }
133
+ it { expect( Experian::DataDictionary.lookup('0108d','90') ).to eq('Congolese (DRG)') }
134
+ it { expect( Experian::DataDictionary.lookup('0108d','91') ).to eq('Surinamese') }
135
+ it { expect( Experian::DataDictionary.lookup('0108d','92') ).to eq('Mozambican (Mozambique)') }
136
+ it { expect( Experian::DataDictionary.lookup('0108d','93') ).to eq('Ivorian (Ivory Coast)') }
137
+ it { expect( Experian::DataDictionary.lookup('0108d','94') ).to eq('Bhutanese') }
138
+ it { expect( Experian::DataDictionary.lookup('0108d','95') ).to eq('Ethiopian') }
139
+ it { expect( Experian::DataDictionary.lookup('0108d','96') ).to eq('Ugandan') }
140
+ it { expect( Experian::DataDictionary.lookup('0108d','97') ).to eq('Batswana (Botswana)') }
141
+ it { expect( Experian::DataDictionary.lookup('0108d','98') ).to eq('Cameroonian') }
142
+ it { expect( Experian::DataDictionary.lookup('0108d','99') ).to eq('Zimbabwean') }
143
+ it { expect( Experian::DataDictionary.lookup('0108d','7A') ).to eq('Hindu') }
144
+ it { expect( Experian::DataDictionary.lookup('0108d','7B') ).to eq('Djiboutian') }
145
+ it { expect( Experian::DataDictionary.lookup('0108d','7C') ).to eq('Manx') }
146
+ it { expect( Experian::DataDictionary.lookup('0108d','7D') ).to eq('Telugu') }
147
+ it { expect( Experian::DataDictionary.lookup('0108d','7E') ).to eq('Nepalese') }
148
+ it { expect( Experian::DataDictionary.lookup('0108d','7F') ).to eq('Samoan') }
149
+ it { expect( Experian::DataDictionary.lookup('0108d','7G') ).to eq('Mauritanian') }
150
+ it { expect( Experian::DataDictionary.lookup('0108d','7H') ).to eq('Native American Inuit') }
151
+ it { expect( Experian::DataDictionary.lookup('0108d','8A') ).to eq('Congolese') }
152
+ it { expect( Experian::DataDictionary.lookup('0108d','8B') ).to eq('Central African (Central African Republic)') }
153
+ it { expect( Experian::DataDictionary.lookup('0108d','8C') ).to eq('Togolese') }
154
+ it { expect( Experian::DataDictionary.lookup('0108d','8D') ).to eq('Bahraini') }
155
+ it { expect( Experian::DataDictionary.lookup('0108d','8E') ).to eq('Qatari') }
156
+ it { expect( Experian::DataDictionary.lookup('0108d','8F') ).to eq('Guyanese') }
157
+ it { expect( Experian::DataDictionary.lookup('0108d','8G') ).to eq('Tibetan') }
158
+ it { expect( Experian::DataDictionary.lookup('0108d','8H') ).to eq('Fijian') }
159
+ it { expect( Experian::DataDictionary.lookup('0108d','8I') ).to eq('Swazi') }
160
+ it { expect( Experian::DataDictionary.lookup('0108d','8J') ).to eq('Zulu') }
161
+ it { expect( Experian::DataDictionary.lookup('0108d','8K') ).to eq('Xhosa') }
162
+ it { expect( Experian::DataDictionary.lookup('0108d','8L') ).to eq('Basotho') }
163
+ it { expect( Experian::DataDictionary.lookup('0108d','8M') ).to eq('South African') }
164
+ it { expect( Experian::DataDictionary.lookup('0108d','8N') ).to eq('Liberian') }
165
+ it { expect( Experian::DataDictionary.lookup('0108d','8O') ).to eq('Comoran') }
166
+ it { expect( Experian::DataDictionary.lookup('0108d','8P') ).to eq('Beninese') }
167
+ it { expect( Experian::DataDictionary.lookup('0108d','8Q') ).to eq('Burkinabe (Burkina Faso)') }
168
+ it { expect( Experian::DataDictionary.lookup('0108d','8R') ).to eq('Nigerien (Niger)') }
169
+ it { expect( Experian::DataDictionary.lookup('0108d','8S') ).to eq('Ashanti') }
170
+ it { expect( Experian::DataDictionary.lookup('0108d','8T') ).to eq('Swahili') }
171
+ it { expect( Experian::DataDictionary.lookup('0108d','8U') ).to eq('Haitian') }
172
+ it { expect( Experian::DataDictionary.lookup('0108d','8V') ).to eq('Malian') }
173
+ it { expect( Experian::DataDictionary.lookup('0108d','8W') ).to eq('Jamaican') }
174
+ it { expect( Experian::DataDictionary.lookup('0108d','8X') ).to eq('Hausa') }
175
+ it { expect( Experian::DataDictionary.lookup('0108d','8Y') ).to eq('Pili') }
176
+ it { expect( Experian::DataDictionary.lookup('0108d','9A') ).to eq('Namibian') }
177
+ it { expect( Experian::DataDictionary.lookup('0108d','9B') ).to eq('Burundi') }
178
+ it { expect( Experian::DataDictionary.lookup('0108d','9C') ).to eq('Tanzanian') }
179
+ it { expect( Experian::DataDictionary.lookup('0108d','9D') ).to eq('Gambian') }
180
+ it { expect( Experian::DataDictionary.lookup('0108d','9E') ).to eq('Somali') }
181
+ it { expect( Experian::DataDictionary.lookup('0108d','9F') ).to eq('Macedonian') }
182
+ it { expect( Experian::DataDictionary.lookup('0108d','9G') ).to eq('Chadian') }
183
+ it { expect( Experian::DataDictionary.lookup('0108d','9H') ).to eq('Gabonese') }
184
+ it { expect( Experian::DataDictionary.lookup('0108d','9I') ).to eq('Angolan') }
185
+ it { expect( Experian::DataDictionary.lookup('0108d','9J') ).to eq('Chechen') }
186
+ it { expect( Experian::DataDictionary.lookup('0108d','9K') ).to eq('Igbo') }
187
+ it { expect( Experian::DataDictionary.lookup('0108d','9L') ).to eq('Yoruba') }
188
+ it { expect( Experian::DataDictionary.lookup('0108d','9M') ).to eq('Algerian') }
189
+ it { expect( Experian::DataDictionary.lookup('0108d','9N') ).to eq('Filipino') }
190
+ it { expect( Experian::DataDictionary.lookup('0108d','9O') ).to eq('Sotho (Lesotho)') }
191
+ it { expect( Experian::DataDictionary.lookup('0108d','9P') ).to eq('Tunisian') }
192
+ it { expect( Experian::DataDictionary.lookup('0108d','9Q') ).to eq('Hawaiian') }
193
+ it { expect( Experian::DataDictionary.lookup('0108d','9R') ).to eq('Malagasy (Madagascar)') }
194
+ it { expect( Experian::DataDictionary.lookup('0108d','9S') ).to eq('Basque') }
195
+ it { expect( Experian::DataDictionary.lookup('0108d','9T') ).to eq('Siere Leonean') }
196
+ it { expect( Experian::DataDictionary.lookup('0108d','9U') ).to eq('Kuwaiti') }
197
+ it { expect( Experian::DataDictionary.lookup('0108d','9V') ).to eq('Yemeni') }
198
+ it { expect( Experian::DataDictionary.lookup('0108d','9W') ).to eq('Guinean (Guinea-Bissau)') }
199
+ it { expect( Experian::DataDictionary.lookup('0108d','9X') ).to eq('Papua New Guinean') }
200
+ it { expect( Experian::DataDictionary.lookup('0108d','9Y') ).to eq('Equatorial Guinean') }
201
+ it { expect( Experian::DataDictionary.lookup('0108d','9Z') ).to eq('Syrian') }
202
+ it { expect( Experian::DataDictionary.lookup('0108d','A1') ).to eq('African American (Arabic Surname), 80%+') }
203
+ it { expect( Experian::DataDictionary.lookup('0108d','A2') ).to eq('African American (Arabic Surname), 70-79%') }
204
+ it { expect( Experian::DataDictionary.lookup('0108d','A3') ).to eq('African American (Arabic Surname), 60-69%') }
205
+ it { expect( Experian::DataDictionary.lookup('0108d','A4') ).to eq('African American (Arabic Surname), 50-59%') }
206
+ it { expect( Experian::DataDictionary.lookup('0108d','A5') ).to eq('African American (Arabic Surname), 30-49%') }
207
+ it { expect( Experian::DataDictionary.lookup('0108d','D1') ).to eq('African American (Dutch Surname), 80%+') }
208
+ it { expect( Experian::DataDictionary.lookup('0108d','D2') ).to eq('African American (Dutch Surname), 70-79%') }
209
+ it { expect( Experian::DataDictionary.lookup('0108d','D3') ).to eq('African American (Dutch Surname), 60-69%') }
210
+ it { expect( Experian::DataDictionary.lookup('0108d','D4') ).to eq('African American (Dutch Surname), 50-59%') }
211
+ it { expect( Experian::DataDictionary.lookup('0108d','D5') ).to eq('African American (Dutch Surname), 30-49%') }
212
+ it { expect( Experian::DataDictionary.lookup('0108d','E1') ).to eq('African American (English Surname), 80%+') }
213
+ it { expect( Experian::DataDictionary.lookup('0108d','E2') ).to eq('African American (English Surname), 70-79%') }
214
+ it { expect( Experian::DataDictionary.lookup('0108d','E3') ).to eq('African American (English Surname), 60-69%') }
215
+ it { expect( Experian::DataDictionary.lookup('0108d','E4') ).to eq('African American (English Surname), 50-59%') }
216
+ it { expect( Experian::DataDictionary.lookup('0108d','E5') ).to eq('African American (English Surname), 30-49%') }
217
+ it { expect( Experian::DataDictionary.lookup('0108d','F1') ).to eq('African American (French Surname), 80%+') }
218
+ it { expect( Experian::DataDictionary.lookup('0108d','F2') ).to eq('African American (French Surname), 70-79%') }
219
+ it { expect( Experian::DataDictionary.lookup('0108d','F3') ).to eq('African American (French Surname), 60-69%') }
220
+ it { expect( Experian::DataDictionary.lookup('0108d','F4') ).to eq('African American (French Surname), 50-59%') }
221
+ it { expect( Experian::DataDictionary.lookup('0108d','F5') ).to eq('African American (French Surname), 30-49%') }
222
+ it { expect( Experian::DataDictionary.lookup('0108d','I1') ).to eq('African American (Irish Surname), 80%+') }
223
+ it { expect( Experian::DataDictionary.lookup('0108d','I2') ).to eq('African American (Irish Surname), 70-79%') }
224
+ it { expect( Experian::DataDictionary.lookup('0108d','I3') ).to eq('African American (Irish Surname), 60-69%') }
225
+ it { expect( Experian::DataDictionary.lookup('0108d','I4') ).to eq('African American (Irish Surname), 50-59%') }
226
+ it { expect( Experian::DataDictionary.lookup('0108d','I5') ).to eq('African American (Irish Surname), 30-49%') }
227
+ it { expect( Experian::DataDictionary.lookup('0108d','S1') ).to eq('African American (Scotch Surname), 80%+') }
228
+ it { expect( Experian::DataDictionary.lookup('0108d','S2') ).to eq('African American (Scotch Surname), 70-79%') }
229
+ it { expect( Experian::DataDictionary.lookup('0108d','S3') ).to eq('African American (Scotch Surname), 60-69%') }
230
+ it { expect( Experian::DataDictionary.lookup('0108d','S4') ).to eq('African American (Scotch Surname), 50-59%') }
231
+ it { expect( Experian::DataDictionary.lookup('0108d','S5') ).to eq('African American (Scotch Surname), 30-49%') }
232
+ it { expect( Experian::DataDictionary.lookup('0108d','U1') ).to eq('African American (Unknown Surname), 80%+') }
233
+ it { expect( Experian::DataDictionary.lookup('0108d','U2') ).to eq('African American (Unknown Surname), 70-79%') }
234
+ it { expect( Experian::DataDictionary.lookup('0108d','U3') ).to eq('African American (Unknown Surname), 60-69%') }
235
+ it { expect( Experian::DataDictionary.lookup('0108d','U4') ).to eq('African American (Unknown Surname), 50-59%') }
236
+ it { expect( Experian::DataDictionary.lookup('0108d','U5') ).to eq('African American (Unknown Surname), 30-49%') }
237
+ it { expect( Experian::DataDictionary.lookup('0108d','W1') ).to eq('African American (Welsh Surname), 80%+') }
238
+ it { expect( Experian::DataDictionary.lookup('0108d','W2') ).to eq('African American (Welsh Surname), 70-79%') }
239
+ it { expect( Experian::DataDictionary.lookup('0108d','W3') ).to eq('African American (Welsh Surname), 60-69%') }
240
+ it { expect( Experian::DataDictionary.lookup('0108d','W4') ).to eq('African American (Welsh Surname), 50-59%') }
241
+ it { expect( Experian::DataDictionary.lookup('0108d','W5') ).to eq('African American (Welsh Surname), 30-49%') }
242
+
243
+ it { expect( Experian::DataDictionary.lookup('0108d','ZZ') ).to eq('Multi-Ethnic') }
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+ it { expect( Experian::DataDictionary.lookup('0108d',' ') ).to eq('Unknown') }
252
+ end
253
+
254
+
255
+ context 'invalid lookup' do
256
+ it { expect( Experian::DataDictionary.lookup('0108d','F') ).to be_nil }
257
+ it { expect( Experian::DataDictionary.lookup('0108d','HE') ).to be_nil }
258
+ it { expect( Experian::DataDictionary.lookup('0108d','GG') ).to be_nil }
259
+ it { expect( Experian::DataDictionary.lookup('0108d','DOG') ).to be_nil }
260
+ end
261
+ end
262
+
263
+
264
+ describe 'Experian::DataDictionary 0108e' do
265
+
266
+ context 'valid lookup' do
267
+ it { expect( Experian::DataDictionary.lookup('0108e','Y') ).to eq('Matched to Ethnic Insight') }
268
+ it { expect( Experian::DataDictionary.lookup('0108e',' ') ).to eq('Unknown') }
269
+ end
270
+
271
+
272
+ context 'invalid lookup' do
273
+ it { expect( Experian::DataDictionary.lookup('0108e','F') ).to be_nil }
274
+ it { expect( Experian::DataDictionary.lookup('0108e','HE') ).to be_nil }
275
+ it { expect( Experian::DataDictionary.lookup('0108e','GG') ).to be_nil }
276
+ it { expect( Experian::DataDictionary.lookup('0108e','DOG') ).to be_nil }
277
+ end
278
+
279
+ end
280
+
281
+ describe 'Experian::DataDictionary 0108g' do
282
+
283
+ context 'valid lookup' do
284
+ it { expect( Experian::DataDictionary.lookup('0108g','01') ).to eq('African') }
285
+ it { expect( Experian::DataDictionary.lookup('0108g','02') ).to eq('African American') }
286
+ it { expect( Experian::DataDictionary.lookup('0108g','03') ).to eq('Asian Other') }
287
+ it { expect( Experian::DataDictionary.lookup('0108g','04') ).to eq('Chinese') }
288
+ it { expect( Experian::DataDictionary.lookup('0108g','05') ).to eq('Czech') }
289
+ it { expect( Experian::DataDictionary.lookup('0108g','06') ).to eq('Dutch') }
290
+ it { expect( Experian::DataDictionary.lookup('0108g','07') ).to eq('Eastern European') }
291
+ it { expect( Experian::DataDictionary.lookup('0108g','08') ).to eq('English') }
292
+ it { expect( Experian::DataDictionary.lookup('0108g','09') ).to eq('French') }
293
+ it { expect( Experian::DataDictionary.lookup('0108g','10') ).to eq('German') }
294
+ it { expect( Experian::DataDictionary.lookup('0108g','11') ).to eq('Greek') }
295
+ it { expect( Experian::DataDictionary.lookup('0108g','12') ).to eq('Hawaiian') }
296
+ it { expect( Experian::DataDictionary.lookup('0108g','13') ).to eq('Hispanic') }
297
+ it { expect( Experian::DataDictionary.lookup('0108g','14') ).to eq('Indonesian') }
298
+ it { expect( Experian::DataDictionary.lookup('0108g','15') ).to eq('Irish') }
299
+ it { expect( Experian::DataDictionary.lookup('0108g','16') ).to eq('Italian') }
300
+ it { expect( Experian::DataDictionary.lookup('0108g','17') ).to eq('Japanese') }
301
+ it { expect( Experian::DataDictionary.lookup('0108g','18') ).to eq('Jewish') }
302
+ it { expect( Experian::DataDictionary.lookup('0108g','19') ).to eq('Korean') }
303
+ it { expect( Experian::DataDictionary.lookup('0108g','20') ).to eq('Middle Eastern') }
304
+ it { expect( Experian::DataDictionary.lookup('0108g','21') ).to eq('Miscellaneous Other') }
305
+ it { expect( Experian::DataDictionary.lookup('0108g','22') ).to eq('Native American') }
306
+ it { expect( Experian::DataDictionary.lookup('0108g','23') ).to eq('Polish') }
307
+ it { expect( Experian::DataDictionary.lookup('0108g','24') ).to eq('Polynesian') }
308
+ it { expect( Experian::DataDictionary.lookup('0108g','25') ).to eq('Portuguese') }
309
+ it { expect( Experian::DataDictionary.lookup('0108g','26') ).to eq('Russian') }
310
+ it { expect( Experian::DataDictionary.lookup('0108g','27') ).to eq('Scandinavian') }
311
+ it { expect( Experian::DataDictionary.lookup('0108g','28') ).to eq('Scotch') }
312
+ it { expect( Experian::DataDictionary.lookup('0108g','29') ).to eq('Swiss') }
313
+ it { expect( Experian::DataDictionary.lookup('0108g','30') ).to eq('Ukrainian') }
314
+ it { expect( Experian::DataDictionary.lookup('0108g','31') ).to eq('Uncoded (no group)') }
315
+ it { expect( Experian::DataDictionary.lookup('0108g','32') ).to eq('Vietnamese') }
316
+ it { expect( Experian::DataDictionary.lookup('0108g','33') ).to eq('Western European') }
317
+
318
+ it { expect( Experian::DataDictionary.lookup('0108g',' ') ).to eq('Unknown') }
319
+ end
320
+
321
+
322
+ context 'invalid lookup' do
323
+ it { expect( Experian::DataDictionary.lookup('0108g','35') ).to be_nil }
324
+ it { expect( Experian::DataDictionary.lookup('0108g','F') ).to be_nil }
325
+ it { expect( Experian::DataDictionary.lookup('0108g','HE') ).to be_nil }
326
+ it { expect( Experian::DataDictionary.lookup('0108g','GG') ).to be_nil }
327
+ it { expect( Experian::DataDictionary.lookup('0108g','DOG') ).to be_nil }
328
+ end
329
+
330
+ end
331
+
332
+ describe 'Experian::DataDictionary 0108r' do
333
+
334
+ context 'valid lookup' do
335
+ it { expect( Experian::DataDictionary.lookup('0108r','B') ).to eq('Buddhist') }
336
+ it { expect( Experian::DataDictionary.lookup('0108r','C') ).to eq('Catholic') }
337
+ it { expect( Experian::DataDictionary.lookup('0108r','E') ).to eq('Ethiopian Orthodox') }
338
+ it { expect( Experian::DataDictionary.lookup('0108r','G') ).to eq('Greek Orthodox') }
339
+ it { expect( Experian::DataDictionary.lookup('0108r','H') ).to eq('Hindu') }
340
+ it { expect( Experian::DataDictionary.lookup('0108r','I') ).to eq('Muslim') }
341
+ it { expect( Experian::DataDictionary.lookup('0108r','J') ).to eq('Jewish') }
342
+ it { expect( Experian::DataDictionary.lookup('0108r','K') ).to eq('Sikh') }
343
+ it { expect( Experian::DataDictionary.lookup('0108r','L') ).to eq('Lutheran') }
344
+ it { expect( Experian::DataDictionary.lookup('0108r','M') ).to eq('Mormon') }
345
+ it { expect( Experian::DataDictionary.lookup('0108r','O') ).to eq('Eastern Orthodox') }
346
+ it { expect( Experian::DataDictionary.lookup('0108r','P') ).to eq('Protestant') }
347
+ it { expect( Experian::DataDictionary.lookup('0108r','S') ).to eq('Shinto') }
348
+ it { expect( Experian::DataDictionary.lookup('0108r','X') ).to eq('Not Known or Unmatched') }
349
+
350
+ it { expect( Experian::DataDictionary.lookup('0108r',' ') ).to eq('Unknown') }
351
+ end
352
+
353
+
354
+ context 'invalid lookup' do
355
+ it { expect( Experian::DataDictionary.lookup('0108r','35') ).to be_nil }
356
+ it { expect( Experian::DataDictionary.lookup('0108r','F') ).to be_nil }
357
+ it { expect( Experian::DataDictionary.lookup('0108r','HE') ).to be_nil }
358
+ it { expect( Experian::DataDictionary.lookup('0108r','GG') ).to be_nil }
359
+ it { expect( Experian::DataDictionary.lookup('0108r','DOG') ).to be_nil }
360
+ end
361
+
362
+ end
363
+
364
+ describe 'Experian::DataDictionary 0108t' do
365
+
366
+ context 'valid lookup' do
367
+ it { expect( Experian::DataDictionary.lookup('0108t','A') ).to eq('African American') }
368
+ it { expect( Experian::DataDictionary.lookup('0108t','B') ).to eq('Southeast Asian') }
369
+ it { expect( Experian::DataDictionary.lookup('0108t','C') ).to eq('South Asian') }
370
+ it { expect( Experian::DataDictionary.lookup('0108t','D') ).to eq('Central Asian') }
371
+ it { expect( Experian::DataDictionary.lookup('0108t','E') ).to eq('Mediterranean') }
372
+ it { expect( Experian::DataDictionary.lookup('0108t','F') ).to eq('Native American') }
373
+ it { expect( Experian::DataDictionary.lookup('0108t','G') ).to eq('Scandinavian') }
374
+ it { expect( Experian::DataDictionary.lookup('0108t','H') ).to eq('Polynesian') }
375
+ it { expect( Experian::DataDictionary.lookup('0108t','I') ).to eq('Middle Eastern') }
376
+ it { expect( Experian::DataDictionary.lookup('0108t','J') ).to eq('Jewish') }
377
+ it { expect( Experian::DataDictionary.lookup('0108t','K') ).to eq('Western European') }
378
+ it { expect( Experian::DataDictionary.lookup('0108t','L') ).to eq('Eastern European') }
379
+ it { expect( Experian::DataDictionary.lookup('0108t','M') ).to eq('Caribbean Non-Hispanic') }
380
+ it { expect( Experian::DataDictionary.lookup('0108t','N') ).to eq('East Asian') }
381
+ it { expect( Experian::DataDictionary.lookup('0108t','O') ).to eq('Hispanic') }
382
+ it { expect( Experian::DataDictionary.lookup('0108t','Z') ).to eq('Uncoded') }
383
+
384
+
385
+
386
+
387
+ it { expect( Experian::DataDictionary.lookup('0108t',' ') ).to eq('Unknown') }
388
+ end
389
+
390
+
391
+ context 'invalid lookup' do
392
+ it { expect( Experian::DataDictionary.lookup('0108t','35') ).to be_nil }
393
+ it { expect( Experian::DataDictionary.lookup('0108t','T') ).to be_nil }
394
+ it { expect( Experian::DataDictionary.lookup('0108t','HE') ).to be_nil }
395
+ it { expect( Experian::DataDictionary.lookup('0108t','GG') ).to be_nil }
396
+ it { expect( Experian::DataDictionary.lookup('0108t','DOG') ).to be_nil }
397
+ end
398
+
399
+ end
400
+
401
+
402
+
403
+ describe 'Experian::DataDictionary 0108l' do
404
+
405
+ context 'valid lookup' do
406
+
407
+ it { expect( Experian::DataDictionary.lookup('0108l','00') ).to eq('Unknown') }
408
+ it { expect( Experian::DataDictionary.lookup('0108l','01') ).to eq('English') }
409
+ it { expect( Experian::DataDictionary.lookup('0108l','03') ).to eq('Danish') }
410
+ it { expect( Experian::DataDictionary.lookup('0108l','04') ).to eq('Swedish') }
411
+ it { expect( Experian::DataDictionary.lookup('0108l','05') ).to eq('Norwegian') }
412
+ it { expect( Experian::DataDictionary.lookup('0108l','06') ).to eq('Finnish') }
413
+ it { expect( Experian::DataDictionary.lookup('0108l','07') ).to eq('Icelandic') }
414
+ it { expect( Experian::DataDictionary.lookup('0108l','08') ).to eq('Dutch') }
415
+ it { expect( Experian::DataDictionary.lookup('0108l','09') ).to eq('Flemish/Walloon') }
416
+ it { expect( Experian::DataDictionary.lookup('0108l','10') ).to eq('German') }
417
+ it { expect( Experian::DataDictionary.lookup('0108l','12') ).to eq('Hungarian') }
418
+ it { expect( Experian::DataDictionary.lookup('0108l','13') ).to eq('Czech') }
419
+ it { expect( Experian::DataDictionary.lookup('0108l','14') ).to eq('Slovak') }
420
+ it { expect( Experian::DataDictionary.lookup('0108l','17') ).to eq('French') }
421
+ it { expect( Experian::DataDictionary.lookup('0108l','19') ).to eq('Italian') }
422
+ it { expect( Experian::DataDictionary.lookup('0108l','20') ).to eq('Spanish') }
423
+ it { expect( Experian::DataDictionary.lookup('0108l','21') ).to eq('Portuguese') }
424
+ it { expect( Experian::DataDictionary.lookup('0108l','22') ).to eq('Polish') }
425
+ it { expect( Experian::DataDictionary.lookup('0108l','23') ).to eq('Estonian') }
426
+ it { expect( Experian::DataDictionary.lookup('0108l','24') ).to eq('Latvian') }
427
+ it { expect( Experian::DataDictionary.lookup('0108l','25') ).to eq('Lithuanian') }
428
+ it { expect( Experian::DataDictionary.lookup('0108l','27') ).to eq('Georgian') }
429
+ it { expect( Experian::DataDictionary.lookup('0108l','29') ).to eq('Armenian') }
430
+ it { expect( Experian::DataDictionary.lookup('0108l','30') ).to eq('Russian') }
431
+ it { expect( Experian::DataDictionary.lookup('0108l','31') ).to eq('Turkish') }
432
+ it { expect( Experian::DataDictionary.lookup('0108l','32') ).to eq('Kurdish') }
433
+ it { expect( Experian::DataDictionary.lookup('0108l','33') ).to eq('Greek') }
434
+ it { expect( Experian::DataDictionary.lookup('0108l','34') ).to eq('Farsi') }
435
+ it { expect( Experian::DataDictionary.lookup('0108l','35') ).to eq('Moldovan') }
436
+ it { expect( Experian::DataDictionary.lookup('0108l','36') ).to eq('Bulgarian') }
437
+ it { expect( Experian::DataDictionary.lookup('0108l','37') ).to eq('Romanian') }
438
+ it { expect( Experian::DataDictionary.lookup('0108l','38') ).to eq('Albanian') }
439
+ it { expect( Experian::DataDictionary.lookup('0108l','40') ).to eq('Slovenian') }
440
+ it { expect( Experian::DataDictionary.lookup('0108l','41') ).to eq('Serbo-Croatian') }
441
+ it { expect( Experian::DataDictionary.lookup('0108l','44') ).to eq('Azeri') }
442
+ it { expect( Experian::DataDictionary.lookup('0108l','45') ).to eq('Kazakh') }
443
+ it { expect( Experian::DataDictionary.lookup('0108l','46') ).to eq('Pashtu/Pashto') }
444
+ it { expect( Experian::DataDictionary.lookup('0108l','47') ).to eq('Urdu') }
445
+ it { expect( Experian::DataDictionary.lookup('0108l','48') ).to eq('Bengali/Bangla') }
446
+ it { expect( Experian::DataDictionary.lookup('0108l','49') ).to eq('Bahasa Indonesia') }
447
+ it { expect( Experian::DataDictionary.lookup('0108l','51') ).to eq('Burmese') }
448
+ it { expect( Experian::DataDictionary.lookup('0108l','52') ).to eq('Mongolian') }
449
+ it { expect( Experian::DataDictionary.lookup('0108l','53') ).to eq('Chinese (Mandarin, Cantonese and other dialects') }
450
+ it { expect( Experian::DataDictionary.lookup('0108l','56') ).to eq('Korean') }
451
+ it { expect( Experian::DataDictionary.lookup('0108l','57') ).to eq('Japanese') }
452
+ it { expect( Experian::DataDictionary.lookup('0108l','58') ).to eq('Thai') }
453
+ it { expect( Experian::DataDictionary.lookup('0108l','59') ).to eq('Bahasa Melayu') }
454
+ it { expect( Experian::DataDictionary.lookup('0108l','60') ).to eq('Lao') }
455
+ it { expect( Experian::DataDictionary.lookup('0108l','61') ).to eq('Khmer') }
456
+ it { expect( Experian::DataDictionary.lookup('0108l','62') ).to eq('Vietnamese') }
457
+ it { expect( Experian::DataDictionary.lookup('0108l','63') ).to eq('Sinhala') }
458
+ it { expect( Experian::DataDictionary.lookup('0108l','64') ).to eq('Uzbek') }
459
+ it { expect( Experian::DataDictionary.lookup('0108l','68') ).to eq('Hebrew') }
460
+ it { expect( Experian::DataDictionary.lookup('0108l','70') ).to eq('Arabic') }
461
+ it { expect( Experian::DataDictionary.lookup('0108l','72') ).to eq('Turkmen') }
462
+ it { expect( Experian::DataDictionary.lookup('0108l','73') ).to eq('Tajik') }
463
+ it { expect( Experian::DataDictionary.lookup('0108l','74') ).to eq('Kirghiz') }
464
+ it { expect( Experian::DataDictionary.lookup('0108l','7A') ).to eq('Hindi') }
465
+ it { expect( Experian::DataDictionary.lookup('0108l','7E') ).to eq('Nepali') }
466
+ it { expect( Experian::DataDictionary.lookup('0108l','7F') ).to eq('Samoan') }
467
+ it { expect( Experian::DataDictionary.lookup('0108l','80') ).to eq('Tongan') }
468
+ it { expect( Experian::DataDictionary.lookup('0108l','86') ).to eq('Oromo') }
469
+ it { expect( Experian::DataDictionary.lookup('0108l','88') ).to eq('Ga') }
470
+ it { expect( Experian::DataDictionary.lookup('0108l','8G') ).to eq('Tibetan') }
471
+ it { expect( Experian::DataDictionary.lookup('0108l','8I') ).to eq('Siswati') }
472
+ it { expect( Experian::DataDictionary.lookup('0108l','8J') ).to eq('Zulu') }
473
+ it { expect( Experian::DataDictionary.lookup('0108l','8K') ).to eq('Xhosa') }
474
+ it { expect( Experian::DataDictionary.lookup('0108l','8M') ).to eq('Afrikaans') }
475
+ it { expect( Experian::DataDictionary.lookup('0108l','8O') ).to eq('Comorian/Shikomoro') }
476
+ it { expect( Experian::DataDictionary.lookup('0108l','8S') ).to eq('Twi (Of Ashanti Ethnicity)') }
477
+ it { expect( Experian::DataDictionary.lookup('0108l','8T') ).to eq('Swahili') }
478
+ it { expect( Experian::DataDictionary.lookup('0108l','8X') ).to eq('Hausa') }
479
+ it { expect( Experian::DataDictionary.lookup('0108l','92') ).to eq('Bantu') }
480
+ it { expect( Experian::DataDictionary.lookup('0108l','94') ).to eq('Dzongkha') }
481
+ it { expect( Experian::DataDictionary.lookup('0108l','95') ).to eq('Amharic') }
482
+ it { expect( Experian::DataDictionary.lookup('0108l','97') ).to eq('Tswana') }
483
+ it { expect( Experian::DataDictionary.lookup('0108l','9E') ).to eq('Somali') }
484
+ it { expect( Experian::DataDictionary.lookup('0108l','9F') ).to eq('Macedonian') }
485
+ it { expect( Experian::DataDictionary.lookup('0108l','9K') ).to eq('Ibo/Igbo') }
486
+ it { expect( Experian::DataDictionary.lookup('0108l','9L') ).to eq('Yoruba') }
487
+ it { expect( Experian::DataDictionary.lookup('0108l','9N') ).to eq('Tagalog') }
488
+ it { expect( Experian::DataDictionary.lookup('0108l','9O') ).to eq('Sotho') }
489
+ it { expect( Experian::DataDictionary.lookup('0108l','9R') ).to eq('Malagasy') }
490
+ it { expect( Experian::DataDictionary.lookup('0108l','9S') ).to eq('Basque') }
491
+ it { expect( Experian::DataDictionary.lookup('0108l',' ') ).to eq('Unknown') }
492
+ end
493
+
494
+
495
+ context 'invalid lookup' do
496
+ it { expect( Experian::DataDictionary.lookup('0108l','F') ).to be_nil }
497
+ it { expect( Experian::DataDictionary.lookup('0108l','HE') ).to be_nil }
498
+ it { expect( Experian::DataDictionary.lookup('0108l','GG') ).to be_nil }
499
+ it { expect( Experian::DataDictionary.lookup('0108l','DOG') ).to be_nil }
500
+ end
501
+ end
502
+
503
+
504
+