stanford-mods 1.3.4 → 1.4.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.
@@ -223,6 +223,7 @@ module Stanford
223
223
  # http://searchworks-solr-lb.stanford.edu:8983/solr/select?facet.field=format&rows=0&facet.sort=index
224
224
  # @return <Array[String]> value in the SearchWorks controlled vocabulary
225
225
  # @deprecated - kept for backwards compatibility but not part of SW UI redesign work Summer 2014
226
+ # @deprecated: this is no longer used in SW, Revs or Spotlight Jan 2016
226
227
  def format
227
228
  val = []
228
229
  types = self.term_values(:typeOfResource)
@@ -1,6 +1,6 @@
1
1
  module Stanford
2
2
  module Mods
3
3
  # this is the Ruby Gem version
4
- VERSION = "1.3.4"
4
+ VERSION = "1.4.0"
5
5
  end
6
6
  end
@@ -378,6 +378,15 @@ describe "date parsing methods" do
378
378
  '75 B.C.' => '-925',
379
379
  '8 B.C.' => '-992'
380
380
  }
381
+ bc_dates_to_int = {
382
+ '801 B.C.' => -801,
383
+ '800 B.C.' => -800,
384
+ '750 B.C.' => -750,
385
+ '700 B.C.' => -700,
386
+ '699 B.C.' => -699,
387
+ '75 B.C.' => -75,
388
+ '8 B.C.' => -8
389
+ }
381
390
 
382
391
  context '*facet_string_from_date_str' do
383
392
  it 'calls instance method facet_string_from_date_str' do
@@ -391,6 +400,12 @@ describe "date parsing methods" do
391
400
  Stanford::Mods::DateParsing.sortable_year_string_from_date_str('1666')
392
401
  end
393
402
  end
403
+ context '*year_int_from_date_str' do
404
+ it 'calls instance method year_int_from_date_str' do
405
+ expect_any_instance_of(Stanford::Mods::DateParsing).to receive(:year_int_from_date_str)
406
+ Stanford::Mods::DateParsing.year_int_from_date_str('1666')
407
+ end
408
+ end
394
409
 
395
410
  context '#facet_string_from_date_str' do
396
411
  single_year
@@ -442,7 +457,8 @@ describe "date parsing methods" do
442
457
  [ # bad dates
443
458
  '9999',
444
459
  '2035',
445
- '0000-00-00'
460
+ '0000-00-00',
461
+ 'uuuu'
446
462
  ].each do |example|
447
463
  it "nil for #{example}" do
448
464
  expect(Stanford::Mods::DateParsing.new(example).facet_string_from_date_str).to eq nil
@@ -450,6 +466,61 @@ describe "date parsing methods" do
450
466
  end
451
467
  end
452
468
 
469
+ context '#year_int_from_date_str' do
470
+ single_year
471
+ .merge(specific_month)
472
+ .merge(specific_day)
473
+ .merge(specific_day_2_digit_year)
474
+ .merge(bc_dates_to_int)
475
+ .merge(specific_day_ruby_parse_fail)
476
+ .merge(brackets_in_middle_of_year)
477
+ .merge(invalid_but_can_get_year).each do |example, expected|
478
+ it "#{expected} for single value #{example}" do
479
+ expect(Stanford::Mods::DateParsing.new(example).year_int_from_date_str).to eq expected.to_i
480
+ end
481
+ end
482
+
483
+ multiple_years
484
+ .merge(multiple_years_4_digits_once)
485
+ .merge(decade_only)
486
+ .merge(decade_only_4_digits).each do |example, expected|
487
+ it "#{expected.first} for multi-value #{example}" do
488
+ expect(Stanford::Mods::DateParsing.new(example).year_int_from_date_str).to eq expected.first.to_i
489
+ end
490
+ end
491
+
492
+ century_only.keys.each do |example|
493
+ it "1700 from #{example}" do
494
+ expect(Stanford::Mods::DateParsing.new(example).year_int_from_date_str).to eq 1700
495
+ end
496
+ end
497
+
498
+ early_numeric_dates.each do |example, _expected|
499
+ it "#{example} for #{example}" do
500
+ expect(Stanford::Mods::DateParsing.new(example).year_int_from_date_str).to eq example.to_i
501
+ end
502
+ end
503
+
504
+ it 'nil for -1666' do
505
+ skip("code broken for -yyyy dates but no existing data for this yet")
506
+ expect(Stanford::Mods::DateParsing.new('-1666').year_int_from_date_str).to eq nil
507
+ end
508
+ it '-1666 for 1666 B.C.' do
509
+ expect(Stanford::Mods::DateParsing.new('1666 B.C.').year_int_from_date_str).to eq(-1666)
510
+ end
511
+
512
+ [ # bad dates
513
+ '9999',
514
+ '2035',
515
+ '0000-00-00',
516
+ 'uuuu'
517
+ ].each do |example|
518
+ it "nil for #{example}" do
519
+ expect(Stanford::Mods::DateParsing.new(example).year_int_from_date_str).to eq nil
520
+ end
521
+ end
522
+ end
523
+
453
524
  context '#sortable_year_string_from_date_str' do
454
525
  single_year
455
526
  .merge(specific_month)
@@ -491,7 +562,8 @@ describe "date parsing methods" do
491
562
  [ # bad dates
492
563
  '9999',
493
564
  '2035',
494
- '0000-00-00'
565
+ '0000-00-00',
566
+ 'uuuu'
495
567
  ].each do |example|
496
568
  it "nil for #{example}" do
497
569
  expect(Stanford::Mods::DateParsing.new(example).sortable_year_string_from_date_str).to eq nil
@@ -524,6 +596,33 @@ describe "date parsing methods" do
524
596
  end
525
597
  end
526
598
 
599
+ context '*year_int_valid?' do
600
+ { # example int as key, expected result as value
601
+ -1666 => false,
602
+ -999 => true,
603
+ -35 => true,
604
+ -3 => true,
605
+ 0 => true,
606
+ 5 => true,
607
+ 33 => true,
608
+ 150 => true,
609
+ (Date.today.year + 1) => true, # current year + 1
610
+ (Date.today.year + 2) => false, # current year + 2
611
+ 9999 => false,
612
+ '165x' => false,
613
+ '198-' => false,
614
+ 'random text' => false,
615
+ nil => false
616
+ }.each do |example, expected|
617
+ it "#{expected} for #{example}" do
618
+ expect(Stanford::Mods::DateParsing.year_int_valid?(example)).to eq expected
619
+ end
620
+ end
621
+ it 'true for 0000' do
622
+ expect(Stanford::Mods::DateParsing.year_int_valid?(0000)).to eq true
623
+ end
624
+ end
625
+
527
626
  context '#sortable_year_for_yyyy' do
528
627
  single_year
529
628
  .merge(specific_month)
@@ -640,10 +739,18 @@ describe "date parsing methods" do
640
739
  end
641
740
  end
642
741
 
643
- context '#sortable_year_for_early_numeric' do
742
+ context '#sortable_year_int_for_early_numeric' do
743
+ early_numeric_dates.each do |example, _expected|
744
+ it "#{example} for #{example}" do
745
+ expect(Stanford::Mods::DateParsing.new(example).sortable_year_int_for_early_numeric).to eq example.to_i
746
+ end
747
+ end
748
+ end
749
+
750
+ context '#sortable_year_str_for_early_numeric' do
644
751
  early_numeric_dates.each do |example, expected|
645
752
  it "#{expected} for #{example}" do
646
- expect(Stanford::Mods::DateParsing.new(example).sortable_year_for_early_numeric).to eq expected
753
+ expect(Stanford::Mods::DateParsing.new(example).sortable_year_str_for_early_numeric).to eq expected
647
754
  end
648
755
  end
649
756
  end
@@ -664,10 +771,18 @@ describe "date parsing methods" do
664
771
  end
665
772
  end
666
773
 
667
- context '#sortable_year_for_bc' do
774
+ context '#sortable_year_int_for_bc' do
775
+ bc_dates_to_int.each do |example, expected|
776
+ it "#{expected} for #{example}" do
777
+ expect(Stanford::Mods::DateParsing.new(example).sortable_year_int_for_bc).to eq expected
778
+ end
779
+ end
780
+ end
781
+
782
+ context '#sortable_year_str_for_bc' do
668
783
  bc_dates.each do |example, expected|
669
784
  it "#{expected} for #{example}" do
670
- expect(Stanford::Mods::DateParsing.new(example).sortable_year_for_bc).to eq expected
785
+ expect(Stanford::Mods::DateParsing.new(example).sortable_year_str_for_bc).to eq expected
671
786
  end
672
787
  end
673
788
  end
@@ -24,7 +24,7 @@ describe "computations from /originInfo field" do
24
24
  <dateCreated>1999</dateCreated>' +
25
25
  mods_origin_info_end_str
26
26
  smods_rec.from_str(mods_str)
27
- expect(smods_rec.send(method_sym)).to eq '2005'
27
+ expect(smods_rec.send(method_sym)).to eq method_sym.to_s.match(/int/) ? 2005 : '2005'
28
28
  end
29
29
  it 'respects ignore_approximate param' do
30
30
  mods_str = mods_origin_info_start_str +
@@ -32,8 +32,8 @@ describe "computations from /originInfo field" do
32
32
  '<dateCreated point="end">1599</dateCreated>' +
33
33
  mods_origin_info_end_str
34
34
  smods_rec.from_str(mods_str)
35
- expect(smods_rec.send(method_sym, true)).to eq '1599'
36
- expect(smods_rec.send(method_sym, false)).to eq '1000'
35
+ expect(smods_rec.send(method_sym, true)).to eq method_sym.to_s.match(/int/) ? 1599 : '1599'
36
+ expect(smods_rec.send(method_sym, false)).to eq method_sym.to_s.match(/int/) ? 1000 : '1000'
37
37
  end
38
38
  it 'nil if ignore_approximate and all dates are approximate' do
39
39
  mods_str = mods_origin_info_start_str +
@@ -42,7 +42,7 @@ describe "computations from /originInfo field" do
42
42
  mods_origin_info_end_str
43
43
  smods_rec.from_str(mods_str)
44
44
  expect(smods_rec.send(method_sym, true)).to eq nil
45
- expect(smods_rec.send(method_sym, false)).to eq '1000'
45
+ expect(smods_rec.send(method_sym, false)).to eq method_sym.to_s.match(/int/) ? 1000 : '1000'
46
46
  end
47
47
  it 'respects ignore_approximate even for keyDate' do
48
48
  mods_str = mods_origin_info_start_str +
@@ -50,8 +50,8 @@ describe "computations from /originInfo field" do
50
50
  '<dateCreated point="end">1599</dateCreated>' +
51
51
  mods_origin_info_end_str
52
52
  smods_rec.from_str(mods_str)
53
- expect(smods_rec.send(method_sym, true)).to eq '1599'
54
- expect(smods_rec.send(method_sym, false)).to eq '1000'
53
+ expect(smods_rec.send(method_sym, true)).to eq method_sym.to_s.match(/int/) ? 1599 : '1599'
54
+ expect(smods_rec.send(method_sym, false)).to eq method_sym.to_s.match(/int/) ? 1000 : '1000'
55
55
  end
56
56
  it 'uses dateCaptured if no dateIssued or dateCreated' do
57
57
  # for web archive seed files
@@ -60,16 +60,19 @@ describe "computations from /originInfo field" do
60
60
  '<dateCaptured encoding="w3cdtf" point="end">20151218111111</dateCaptured>' +
61
61
  mods_origin_info_end_str
62
62
  smods_rec.from_str(mods_str)
63
- expect(smods_rec.send(method_sym)).to eq '2015'
63
+ expect(smods_rec.send(method_sym)).to eq method_sym.to_s.match(/int/) ? 2015 : '2015'
64
64
  end
65
65
  context 'spotlight actual data' do
66
66
  require 'fixtures/spotlight_pub_date_data'
67
67
  SPOTLIGHT_PUB_DATE_DATA.each_pair.each do |coll_name, coll_data|
68
- coll_data.each_pair do |mods_str, exp_vals|
69
- expected = exp_vals[exp_val_position]
70
- it "#{expected} for rec in #{coll_name}" do
71
- smods_rec.from_str(mods_str)
72
- expect(smods_rec.send(method_sym)).to eq expected
68
+ # papyri - the only Spotlight data with BC dates
69
+ unless coll_name == 'papyri' && method_sym == :pub_year_int
70
+ coll_data.each_pair do |mods_str, exp_vals|
71
+ expected = exp_vals[exp_val_position]
72
+ it "#{expected} for rec in #{coll_name}" do
73
+ smods_rec.from_str(mods_str)
74
+ expect(smods_rec.send(method_sym)).to eq((method_sym.to_s.match(/int/) ? expected.to_i : expected)) if expected
75
+ end
73
76
  end
74
77
  end
75
78
  end
@@ -80,11 +83,34 @@ describe "computations from /originInfo field" do
80
83
  it_behaves_like "single pub date value", :pub_date_facet_single_value, 1
81
84
  end
82
85
 
83
- context '#pub_date_sortable_string' do
84
- it_behaves_like "single pub date value", :pub_date_sortable_string, 0
86
+ context '#pub_year_sort_str' do
87
+ it_behaves_like "single pub date value", :pub_year_sort_str, 0
85
88
  end
86
89
 
87
- context '*earliest_date' do
90
+ context '#pub_year_int' do
91
+ it_behaves_like "single pub date value", :pub_year_int, 0
92
+ # papyri - the only Spotlight data with BC dates
93
+ it '-200 for 200 B.C.' do
94
+ # hd778hw9236
95
+ mods_str = mods_origin_info_start_str +
96
+ '<dateCreated encoding="w3cdtf" keyDate="yes" point="start" qualifier="approximate">200 B.C.</dateCreated>' +
97
+ '<dateCreated encoding="w3cdtf" keyDate="yes" point="end" qualifier="approximate">180 B.C.</dateCreated>' +
98
+ mods_origin_info_end_str
99
+ smods_rec.from_str(mods_str)
100
+ expect(smods_rec.pub_year_int).to eq(-200)
101
+ end
102
+ it '-211 for 211 B.C.' do
103
+ # ww728rz0477
104
+ mods_str = mods_origin_info_start_str +
105
+ '<dateCreated encoding="w3cdtf" keyDate="yes" point="start" qualifier="approximate">211 B.C.</dateCreated>' +
106
+ '<dateCreated encoding="w3cdtf" keyDate="yes" point="end" qualifier="approximate">150 B.C.</dateCreated>' +
107
+ mods_origin_info_end_str
108
+ smods_rec.from_str(mods_str)
109
+ expect(smods_rec.pub_year_int).to eq(-211)
110
+ end
111
+ end
112
+
113
+ context '*earliest_year_str' do
88
114
  it 'selects earliest (valid) parseable date from multiple options' do
89
115
  mods_str = mods_origin_info_start_str +
90
116
  '<dateIssued point="start" qualifier="questionable">1758</dateIssued>' +
@@ -92,7 +118,7 @@ describe "computations from /originInfo field" do
92
118
  '<dateIssued>1753]</dateIssued>' +
93
119
  mods_origin_info_end_str
94
120
  smods_rec.from_str(mods_str)
95
- expect(Stanford::Mods::Record.earliest_date(smods_rec.date_issued_elements)).to eq ['1753', '1753]']
121
+ expect(Stanford::Mods::Record.earliest_year_str(smods_rec.date_issued_elements)).to eq ['1753', '1753]']
96
122
  end
97
123
  it 'ignores encoding' do
98
124
  # encoding matters for choosing display, not for parsing year
@@ -102,21 +128,21 @@ describe "computations from /originInfo field" do
102
128
  '<dateIssued encoding="w3cdtf">1300</dateIssued>' +
103
129
  mods_origin_info_end_str
104
130
  smods_rec.from_str(mods_str)
105
- expect(Stanford::Mods::Record.earliest_date(smods_rec.date_issued_elements)).to eq ['1100', '1100']
131
+ expect(Stanford::Mods::Record.earliest_year_str(smods_rec.date_issued_elements)).to eq ['1100', '1100']
106
132
  mods_str = mods_origin_info_start_str +
107
133
  '<dateIssued>1200</dateIssued>' +
108
134
  '<dateIssued encoding="marc">1300</dateIssued>' +
109
135
  '<dateIssued encoding="w3cdtf">1100</dateIssued>' +
110
136
  mods_origin_info_end_str
111
137
  smods_rec.from_str(mods_str)
112
- expect(Stanford::Mods::Record.earliest_date(smods_rec.date_issued_elements)).to eq ['1100', '1100']
138
+ expect(Stanford::Mods::Record.earliest_year_str(smods_rec.date_issued_elements)).to eq ['1100', '1100']
113
139
  mods_str = mods_origin_info_start_str +
114
140
  '<dateIssued>1300</dateIssued>' +
115
141
  '<dateIssued encoding="marc">1100</dateIssued>' +
116
142
  '<dateIssued encoding="w3cdtf">1200</dateIssued>' +
117
143
  mods_origin_info_end_str
118
144
  smods_rec.from_str(mods_str)
119
- expect(Stanford::Mods::Record.earliest_date(smods_rec.date_issued_elements)).to eq ['1100', '1100']
145
+ expect(Stanford::Mods::Record.earliest_year_str(smods_rec.date_issued_elements)).to eq ['1100', '1100']
120
146
  end
121
147
  it 'calls DateParsing.sortable_year_string_from_date_str for each element value' do
122
148
  mods_str = mods_origin_info_start_str +
@@ -126,7 +152,7 @@ describe "computations from /originInfo field" do
126
152
  mods_origin_info_end_str
127
153
  smods_rec.from_str(mods_str)
128
154
  expect(Stanford::Mods::DateParsing).to receive(:sortable_year_string_from_date_str).exactly(3).times
129
- Stanford::Mods::Record.earliest_date(smods_rec.date_issued_elements)
155
+ Stanford::Mods::Record.earliest_year_str(smods_rec.date_issued_elements)
130
156
  end
131
157
  end
132
158
 
@@ -137,7 +163,7 @@ describe "computations from /originInfo field" do
137
163
  '<dateIssued keyDate="yes">2014</dateIssued>' +
138
164
  mods_origin_info_end_str
139
165
  smods_rec.from_str(mods_str)
140
- expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq '2014'
166
+ expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq method_sym.to_s.match(/int/) ? 2014 : '2014'
141
167
  end
142
168
  it 'ignores invalid keyDate value' do
143
169
  mods_str = mods_origin_info_start_str +
@@ -145,25 +171,33 @@ describe "computations from /originInfo field" do
145
171
  '<dateIssued>1499</dateIssued>' +
146
172
  mods_origin_info_end_str
147
173
  smods_rec.from_str(mods_str)
148
- expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq '1499'
174
+ expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq method_sym.to_s.match(/int/) ? 1499 : '1499'
149
175
  end
150
- it 'calls earliest_date if multiple keyDates present' do
176
+ it 'calls earliest_year_str if multiple keyDates present' do
151
177
  mods_str = mods_origin_info_start_str +
152
178
  '<dateCreated keyDate="yes">2003</dateCreated>' +
153
179
  '<dateCreated keyDate="yes">2001</dateCreated>' +
154
180
  mods_origin_info_end_str
155
181
  smods_rec.from_str(mods_str)
156
- expect(Stanford::Mods::Record).to receive(:earliest_date).with(smods_rec.date_created_elements)
182
+ if method_sym.to_s.match(/int/)
183
+ expect(Stanford::Mods::Record).to receive(:earliest_year_int).with(smods_rec.date_created_elements)
184
+ else
185
+ expect(Stanford::Mods::Record).to receive(:earliest_year_str).with(smods_rec.date_created_elements)
186
+ end
157
187
  expect(smods_rec.send(method_sym, smods_rec.date_created_elements))
158
188
  end
159
- it 'calls earliest_date if no keyDate' do
189
+ it 'calls earliest_year_str if no keyDate' do
160
190
  mods_str = mods_origin_info_start_str +
161
191
  '<dateIssued>1753]</dateIssued>' +
162
192
  '<dateIssued point="start" qualifier="questionable">1758</dateIssued>' +
163
193
  '<dateIssued point="end" qualifier="questionable">uuuu</dateIssued>' +
164
194
  mods_origin_info_end_str
165
195
  smods_rec.from_str(mods_str)
166
- expect(Stanford::Mods::Record).to receive(:earliest_date).with(smods_rec.date_issued_elements)
196
+ if method_sym.to_s.match(/int/)
197
+ expect(Stanford::Mods::Record).to receive(:earliest_year_int).with(smods_rec.date_issued_elements)
198
+ else
199
+ expect(Stanford::Mods::Record).to receive(:earliest_year_str).with(smods_rec.date_issued_elements)
200
+ end
167
201
  smods_rec.send(method_sym, smods_rec.date_issued_elements)
168
202
  end
169
203
  it 'ignores encoding' do
@@ -174,43 +208,54 @@ describe "computations from /originInfo field" do
174
208
  '<dateIssued encoding="w3cdtf">1300</dateIssued>' +
175
209
  mods_origin_info_end_str
176
210
  smods_rec.from_str(mods_str)
177
- expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq '1100'
211
+ expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq method_sym.to_s.match(/int/) ? 1100 : '1100'
178
212
  mods_str = mods_origin_info_start_str +
179
213
  '<dateIssued>1200</dateIssued>' +
180
214
  '<dateIssued encoding="marc">1300</dateIssued>' +
181
215
  '<dateIssued encoding="w3cdtf" keyDate="yes">1100</dateIssued>' +
182
216
  mods_origin_info_end_str
183
217
  smods_rec.from_str(mods_str)
184
- expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq '1100'
218
+ expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq method_sym.to_s.match(/int/) ? 1100 : '1100'
185
219
  mods_str = mods_origin_info_start_str +
186
220
  '<dateIssued>1300</dateIssued>' +
187
221
  '<dateIssued encoding="marc" keyDate="yes">1100</dateIssued>' +
188
222
  '<dateIssued encoding="w3cdtf">1200</dateIssued>' +
189
223
  mods_origin_info_end_str
190
224
  smods_rec.from_str(mods_str)
191
- expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq '1100'
225
+ expect(smods_rec.send(method_sym, smods_rec.date_issued_elements)).to eq method_sym.to_s.match(/int/) ? 1100 : '1100'
192
226
  end
193
227
  end
194
228
 
195
- context '#pub_date_best_single_facet_value' do
196
- it_behaves_like "pub date best single value", :pub_date_best_single_facet_value
229
+ context '#year_facet_str' do
230
+ it_behaves_like "pub date best single value", :year_facet_str
197
231
  it 'uses facet value, not sorting value' do
198
232
  mods_str = mods_origin_info_start_str +
199
233
  '<dateCreated keyDate="yes">180 B.C.</dateCreated>' +
200
234
  mods_origin_info_end_str
201
235
  smods_rec.from_str(mods_str)
202
- expect(smods_rec.send(:pub_date_best_single_facet_value, smods_rec.date_created_elements)).to eq '180 B.C.'
236
+ expect(smods_rec.year_facet_str(smods_rec.date_created_elements)).to eq '180 B.C.'
203
237
  end
204
238
  end
205
239
 
206
- context '#pub_date_best_sort_str_value' do
207
- it_behaves_like "pub date best single value", :pub_date_best_sort_str_value
240
+ context '#year_sort_str' do
241
+ it_behaves_like "pub date best single value", :year_sort_str
208
242
  it 'uses string sorting value, not facet value' do
209
243
  mods_str = mods_origin_info_start_str +
210
244
  '<dateCreated keyDate="yes">180 B.C.</dateCreated>' +
211
245
  mods_origin_info_end_str
212
246
  smods_rec.from_str(mods_str)
213
- expect(smods_rec.send(:pub_date_best_sort_str_value, smods_rec.date_created_elements)).to eq '-820'
247
+ expect(smods_rec.year_sort_str(smods_rec.date_created_elements)).to eq '-820'
248
+ end
249
+ end
250
+
251
+ context '#year_int' do
252
+ it_behaves_like "pub date best single value", :year_int
253
+ it 'uses integer sorting value, not string or facet value' do
254
+ mods_str = mods_origin_info_start_str +
255
+ '<dateCreated keyDate="yes">180 B.C.</dateCreated>' +
256
+ mods_origin_info_end_str
257
+ smods_rec.from_str(mods_str)
258
+ expect(smods_rec.year_int(smods_rec.date_created_elements)).to eq(-180)
214
259
  end
215
260
  end
216
261