open_ehr 0.9.4 → 0.9.5
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.
- data/History.txt +3 -0
- data/README.rdoc +3 -3
- data/VERSION +1 -1
- data/lib/open_ehr/am/archetype/constraint_model/primitive.rb +61 -34
- data/lib/open_ehr/am/openehr_profile/data_types/basic.rb +27 -0
- data/lib/open_ehr/am/openehr_profile/data_types/quantity.rb +18 -0
- data/lib/open_ehr/am/openehr_profile/data_types/text.rb +22 -0
- data/lib/open_ehr/am/openehr_profile/data_types.rb +12 -0
- data/lib/open_ehr/am/openehr_profile.rb +10 -0
- data/lib/open_ehr/am.rb +2 -0
- data/lib/open_ehr/assumed_library_types.rb +30 -25
- data/lib/open_ehr/parser/cadl_grammar.tt +479 -163
- data/lib/open_ehr/parser/shared_token_grammar.tt +63 -43
- data/lib/open_ehr/rm/data_types/quantity/date_time.rb +27 -14
- data/lib/open_ehr.rb +1 -1
- data/open_ehr.gemspec +17 -6
- data/spec/lib/open_ehr/am/archetype/assertion/operator_kind_spec.rb +4 -0
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_spec.rb +20 -48
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_date_time_spec.rb +33 -8
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_duration_spec.rb +19 -52
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_string_spec.rb +2 -3
- data/spec/lib/open_ehr/am/archetype/constraint_model/primitive/c_time_spec.rb +27 -7
- data/spec/lib/open_ehr/am/archetype/ontology/archetype_ontology_spec.rb +0 -1
- data/spec/lib/open_ehr/am/openehr_profile/data_types/text/c_code_phrase_spec.rb +35 -0
- data/spec/lib/open_ehr/parser/adl14/adl-test-SOME_TYPE.generic_type_basic.draft.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_slot.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.archetype_slot.test2.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.basic_types.test.adl +3 -3
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.c_code_phrase.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.datetime.test.adl +1 -1
- data/spec/lib/open_ehr/parser/adl14/adl-test-entry.durations.test.adl +2 -4
- data/spec/lib/open_ehr/parser/adl_archetype_internal_ref_with_generics_spec.rb +6 -6
- data/spec/lib/open_ehr/parser/adl_archetype_slot_cluster_spec.rb +101 -0
- data/spec/lib/open_ehr/parser/adl_archetype_slot_spec.rb +193 -0
- data/spec/lib/open_ehr/parser/adl_archetype_uncommon_term_keys_spec.rb +25 -0
- data/spec/lib/open_ehr/parser/adl_parser_spec.rb +6 -6
- data/spec/lib/open_ehr/parser/basic_generic_type_spec.rb +18 -0
- data/spec/lib/open_ehr/parser/basic_type_spec.rb +2922 -0
- data/spec/lib/open_ehr/parser/code_phrase_spec.rb +91 -0
- data/spec/lib/open_ehr/parser/date_time_spec.rb +1953 -0
- data/spec/lib/open_ehr/parser/duration_spec.rb +475 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_duration_spec.rb +44 -0
- data/spec/lib/open_ehr/rm/data_types/quantity/date_time/dv_time_spec.rb +6 -2
- data/spec/spec_helper.rb +3 -2
- metadata +52 -41
- data/lib/open_ehr/am/archetype/archetype_description/archetype_description.rb +0 -21
- data/lib/open_ehr/am/open_ehr_profile/data_types/basic.rb +0 -29
- data/lib/open_ehr/am/open_ehr_profile/data_types/quantity.rb +0 -19
- data/lib/open_ehr/am/open_ehr_profile/data_types/text.rb +0 -15
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
|
2
|
+
require File.dirname(__FILE__) + '/parser_spec_helper'
|
|
3
|
+
|
|
4
|
+
# ticket 172
|
|
5
|
+
|
|
6
|
+
describe ADLParser do
|
|
7
|
+
context 'CDuration type' do
|
|
8
|
+
before(:all) do
|
|
9
|
+
archetype = adl14_archetype('adl-test-entry.durations.test.adl')
|
|
10
|
+
@attributes = archetype.definition.attributes
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def attr(index)
|
|
14
|
+
return @const.children[index-1].attributes[0].children[0]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
context 'Duration without assumed value' do
|
|
18
|
+
before(:all) do
|
|
19
|
+
@const = @attributes[0].children[0].attributes[0]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context '1st attribute PT0s' do
|
|
23
|
+
before(:all) do
|
|
24
|
+
@at = attr(1)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it '1st item of the list is PT0s' do
|
|
28
|
+
@at.list[0].value.should == 'PT0s'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it 'does not have assumed_value' do
|
|
32
|
+
@at.should_not have_assumed_value
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
context '2nd attribute P1d' do
|
|
37
|
+
before(:all) do
|
|
38
|
+
@at = attr(2)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it '1st item of the list is P1d' do
|
|
42
|
+
@at.list[0].value.should == 'P1d'
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it 'day is 1' do
|
|
46
|
+
@at.list[0].days.should == 1
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
it 'months is 0' do
|
|
50
|
+
@at.list[0].months.should be 0
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
it 'does not have assumed_value' do
|
|
54
|
+
@at.should_not have_assumed_value
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
context '3rd attribute PT2h5m0s' do
|
|
59
|
+
before(:all) do
|
|
60
|
+
@at = attr(3)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it '1st item of the list is PT2h5m0s' do
|
|
64
|
+
@at.list[0].value.should == 'PT2h5m0s'
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it 'hours should 2' do
|
|
68
|
+
@at.list[0].hours.should be 2
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
context '4th attribute |PT1h55m0s..PT2h5m0s|' do
|
|
73
|
+
before(:all) do
|
|
74
|
+
@at = attr(4)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
it 'lower range is PT1h55m0s' do
|
|
78
|
+
@at.range.lower.value.should == 'PT1h55m0s'
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
it 'upper range is PT2h5m0s' do
|
|
82
|
+
@at.range.upper.value.should == 'PT2h5m0s'
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it 'is upper included' do
|
|
86
|
+
@at.range.should be_upper_included
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
it 'is lower included' do
|
|
90
|
+
@at.range.should be_lower_included
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
context '5th attribute |<=PT1h|' do
|
|
95
|
+
before(:all) do
|
|
96
|
+
@at = attr(5)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
it 'upper range is PT1h' do
|
|
100
|
+
@at.range.upper.value.should == 'PT1h'
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
it 'is upper included' do
|
|
104
|
+
@at.range.should be_upper_included
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
it 'is lower unbounded' do
|
|
108
|
+
@at.range.should be_lower_unbounded
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
context '6th attribute P1DT1H2M3S' do
|
|
113
|
+
before(:all) do
|
|
114
|
+
@at = attr(6)
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
it '1st item of the list is P1DT1H2M3S' do
|
|
118
|
+
@at.list[0].value.should == 'P1DT1H2M3S'
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
it 'day is 1' do
|
|
122
|
+
@at.list[0].days.should == 1
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it 'seconds is 3' do
|
|
126
|
+
@at.list[0].seconds.should be 3
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
context '7th attribute P1W2DT1H2M3S' do
|
|
131
|
+
before(:all) do
|
|
132
|
+
@at = attr(7)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it '1st item of the list is P1W2DT1H2M3S' do
|
|
136
|
+
@at.list[0].value.should == 'P1W2DT1H2M3S'
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
it 'weeks is 1' do
|
|
140
|
+
@at.list[0].weeks.should be 1
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
it 'minutes is 2' do
|
|
144
|
+
@at.list[0].minutes.should be 2
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
context '8th attribute P3M1W2DT1H2M3S' do
|
|
149
|
+
before(:all) do
|
|
150
|
+
@at = attr(8)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
it '1st item of the list is P3M1W2DT1H2M3S' do
|
|
154
|
+
@at.list[0].value.should == 'P3M1W2DT1H2M3S'
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
it 'months are 3' do
|
|
158
|
+
@at.list[0].months.should be 3
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
it 'hours are 1' do
|
|
162
|
+
@at.list[0].hours.should be 1
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
context '9th attribute PDTH' do
|
|
167
|
+
before(:all) do
|
|
168
|
+
@at = attr(9)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
it 'pattern is PDTH' do
|
|
172
|
+
@at.pattern.should == 'PDTH'
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
context '10th attribute |PT10M|' do
|
|
177
|
+
before(:all) do
|
|
178
|
+
@at = attr(10)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
it 'upper range is PT10M' do
|
|
182
|
+
@at.range.upper.value.should == 'PT10M'
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
it 'lower range is PT10M' do
|
|
186
|
+
@at.range.lower.value.should == 'PT10M'
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
it 'lower range minutes are 10' do
|
|
190
|
+
@at.range.lower.minutes.should be 10
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
it 'lower range months are 0' do
|
|
194
|
+
@at.range.lower.months.should be 0
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
it 'is upper included' do
|
|
198
|
+
@at.range.should be_upper_included
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
it 'is lower included' do
|
|
202
|
+
@at.range.should be_lower_included
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
context '11th attribute PYMWDTHMS' do
|
|
207
|
+
before(:all) do
|
|
208
|
+
@at = attr(11)
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
it 'pattern is PYMWDTHMS' do
|
|
212
|
+
@at.pattern.should == 'PYMWDTHMS'
|
|
213
|
+
end
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
# at1011 is duplicated
|
|
217
|
+
|
|
218
|
+
context '12th attribute |PT0.004s|' do
|
|
219
|
+
before(:all) do
|
|
220
|
+
@at = attr(12)
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
it 'upper range is PT0.004s' do
|
|
224
|
+
@at.range.upper.value.should == 'PT0.004s'
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
it 'lower range is PT0.004s' do
|
|
228
|
+
@at.range.lower.value.should == 'PT0.004s'
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
it 'lower range fractional second are 0.004' do
|
|
232
|
+
@at.range.lower.fractional_second.should == 0.004
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
it 'lower range fractional second are 0.004' do
|
|
236
|
+
@at.range.lower.fractional_second.should == 0.004
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
it 'is upper included' do
|
|
240
|
+
@at.range.should be_upper_included
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
it 'is lower included' do
|
|
244
|
+
@at.range.should be_lower_included
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
context '13th attribute |PT10.01s|' do
|
|
249
|
+
before(:all) do
|
|
250
|
+
@at = attr(13)
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
it 'upper range is PT10.01s' do
|
|
254
|
+
@at.range.upper.value.should == 'PT10.01s'
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
it 'lower range is PT10.01s' do
|
|
258
|
+
@at.range.lower.value.should == 'PT10.01s'
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
it 'lower range seconds are 10' do
|
|
262
|
+
@at.range.lower.seconds.should == 10
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
it 'lower range fractionsl second are 0.01' do
|
|
266
|
+
@at.range.lower.fractional_second.should == 0.01
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
it 'is upper included' do
|
|
270
|
+
@at.range.should be_upper_included
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
it 'is lower included' do
|
|
274
|
+
@at.range.should be_lower_included
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
context '14th attribute |PT1.1s|' do
|
|
279
|
+
before(:all) do
|
|
280
|
+
@at = attr(14)
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
it 'upper range is PT1.1s' do
|
|
284
|
+
@at.range.upper.value.should == 'PT1.1s'
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
it 'lower range is PT1.1s' do
|
|
288
|
+
@at.range.lower.value.should == 'PT1.1s'
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
it 'upper range seconds are 1' do
|
|
292
|
+
@at.range.upper.seconds.should == 1
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
it 'upper range fractional second are 0.1' do
|
|
296
|
+
@at.range.upper.fractional_second.should == 0.1
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
it 'is upper included' do
|
|
300
|
+
@at.range.should be_upper_included
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
it 'is lower included' do
|
|
304
|
+
@at.range.should be_lower_included
|
|
305
|
+
end
|
|
306
|
+
end
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
context 'Duration with assumed value' do
|
|
310
|
+
before(:all) do
|
|
311
|
+
@const = @attributes[0].children[1].attributes[0]
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
context '1st attribute PT0s; P1d' do
|
|
315
|
+
before(:all) do
|
|
316
|
+
@at = attr(1)
|
|
317
|
+
end
|
|
318
|
+
|
|
319
|
+
it '1st item of the list is PT0s' do
|
|
320
|
+
@at.list[0].value.should == 'PT0s'
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
it 'has assumed_value' do
|
|
324
|
+
@at.should have_assumed_value
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
it 'assumed value is P1d' do
|
|
328
|
+
@at.assumed_value.value.should == 'P1d'
|
|
329
|
+
end
|
|
330
|
+
end
|
|
331
|
+
|
|
332
|
+
context '2nd attribute P1d; P1d' do
|
|
333
|
+
before(:all) do
|
|
334
|
+
@at = attr(2)
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
it '1st item of the list is P1d' do
|
|
338
|
+
@at.list[0].value.should == 'P1d'
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
it 'day is 1' do
|
|
342
|
+
@at.list[0].days.should == 1
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
it 'months is 0' do
|
|
346
|
+
@at.list[0].months.should be 0
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
it 'assumed value is P1d' do
|
|
350
|
+
@at.assumed_value.value.should == 'P1d'
|
|
351
|
+
end
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
context '3rd attribute PT2h5m0s; P1d' do
|
|
355
|
+
before(:all) do
|
|
356
|
+
@at = attr(3)
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
it '1st item of the list is PT2h5m0s' do
|
|
360
|
+
@at.list[0].value.should == 'PT2h5m0s'
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
it 'hours should 2' do
|
|
364
|
+
@at.list[0].hours.should be 2
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
it 'assumed value is P1d' do
|
|
368
|
+
@at.assumed_value.value.should == 'P1d'
|
|
369
|
+
end
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
context '4th attribute |PT1h55m0s..PT2h5m0s|; P1d' do
|
|
373
|
+
before(:all) do
|
|
374
|
+
@at = attr(4)
|
|
375
|
+
end
|
|
376
|
+
|
|
377
|
+
it 'lower range is PT1h55m0s' do
|
|
378
|
+
@at.range.lower.value.should == 'PT1h55m0s'
|
|
379
|
+
end
|
|
380
|
+
|
|
381
|
+
it 'upper range is PT2h5m0s' do
|
|
382
|
+
@at.range.upper.value.should == 'PT2h5m0s'
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
it 'is upper included' do
|
|
386
|
+
@at.range.should be_upper_included
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
it 'is lower included' do
|
|
390
|
+
@at.range.should be_lower_included
|
|
391
|
+
end
|
|
392
|
+
|
|
393
|
+
it 'assumed value is P1d' do
|
|
394
|
+
@at.assumed_value.value.should == 'P1d'
|
|
395
|
+
end
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
context '5th attribute |<=PT1h|; P1d' do
|
|
399
|
+
before(:all) do
|
|
400
|
+
@at = attr(5)
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
it 'upper range is PT1h' do
|
|
404
|
+
@at.range.upper.value.should == 'PT1h'
|
|
405
|
+
end
|
|
406
|
+
|
|
407
|
+
it 'is upper included' do
|
|
408
|
+
@at.range.should be_upper_included
|
|
409
|
+
end
|
|
410
|
+
|
|
411
|
+
it 'is lower unbounded' do
|
|
412
|
+
@at.range.should be_lower_unbounded
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
it 'assumed value is P1d' do
|
|
416
|
+
@at.assumed_value.value.should == 'P1d'
|
|
417
|
+
end
|
|
418
|
+
end
|
|
419
|
+
|
|
420
|
+
context '6th attribute PDTH; P1d' do
|
|
421
|
+
before(:all) do
|
|
422
|
+
@at = attr(6)
|
|
423
|
+
end
|
|
424
|
+
|
|
425
|
+
it 'pattern is PDTH' do
|
|
426
|
+
@at.pattern.should == 'PDTH'
|
|
427
|
+
end
|
|
428
|
+
|
|
429
|
+
it 'assumed value is P1d' do
|
|
430
|
+
@at.assumed_value.value.should == 'P1d'
|
|
431
|
+
end
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
# at1007 - at1009 was skiped
|
|
435
|
+
|
|
436
|
+
context '7th attribute |PT10M|; PT12M' do
|
|
437
|
+
before(:all) do
|
|
438
|
+
@at = attr(7)
|
|
439
|
+
end
|
|
440
|
+
|
|
441
|
+
it 'upper range is PT10M' do
|
|
442
|
+
@at.range.upper.value.should == 'PT10M'
|
|
443
|
+
end
|
|
444
|
+
|
|
445
|
+
it 'lower range is PT10M' do
|
|
446
|
+
@at.range.lower.value.should == 'PT10M'
|
|
447
|
+
end
|
|
448
|
+
|
|
449
|
+
it 'lower range minutes are 10' do
|
|
450
|
+
@at.range.lower.minutes.should be 10
|
|
451
|
+
end
|
|
452
|
+
|
|
453
|
+
it 'lower range months are 0' do
|
|
454
|
+
@at.range.lower.months.should be 0
|
|
455
|
+
end
|
|
456
|
+
|
|
457
|
+
it 'is upper included' do
|
|
458
|
+
@at.range.should be_upper_included
|
|
459
|
+
end
|
|
460
|
+
|
|
461
|
+
it 'is lower included' do
|
|
462
|
+
@at.range.should be_lower_included
|
|
463
|
+
end
|
|
464
|
+
|
|
465
|
+
it 'assumed value is PT12M' do
|
|
466
|
+
@at.assumed_value.value.should == 'PT12M'
|
|
467
|
+
end
|
|
468
|
+
|
|
469
|
+
it 'assumed value minutes is 12' do
|
|
470
|
+
@at.assumed_value.minutes.should be 12
|
|
471
|
+
end
|
|
472
|
+
end
|
|
473
|
+
end
|
|
474
|
+
end
|
|
475
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../../../../spec_helper'
|
|
2
|
+
include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
3
|
+
|
|
4
|
+
describe DvDate do
|
|
5
|
+
before(:each) do
|
|
6
|
+
@dv_duration = DvDuration.new(:value => 'P1Y2M3W4DT5H6M7.7S')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it 'is an instance of DvDuration' do
|
|
10
|
+
@dv_duration.should be_an_instance_of DvDuration
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'year is 1' do
|
|
14
|
+
@dv_duration.years.should be 1
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'months is 2' do
|
|
18
|
+
@dv_duration.months.should be 2
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'weeks is 3' do
|
|
22
|
+
@dv_duration.weeks.should be 3
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'days is 4' do
|
|
26
|
+
@dv_duration.days.should be 4
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it 'hours should be 5' do
|
|
30
|
+
@dv_duration.hours.should be 5
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'minutes should be 6' do
|
|
34
|
+
@dv_duration.minutes.should be 6
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it 'seconds should be 7' do
|
|
38
|
+
@dv_duration.seconds.should be 7
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'fractional_second should be 0.7' do
|
|
42
|
+
@dv_duration.fractional_second.should == 0.7
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -3,7 +3,7 @@ include OpenEHR::RM::DataTypes::Quantity::DateTime
|
|
|
3
3
|
|
|
4
4
|
describe DvTime do
|
|
5
5
|
before(:each) do
|
|
6
|
-
@dv_time = DvTime.new(:value => '11:17:30.2')
|
|
6
|
+
@dv_time = DvTime.new(:value => '11:17:30.2-0900')
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
it 'should be an instance of DvTime' do
|
|
@@ -26,10 +26,14 @@ describe DvTime do
|
|
|
26
26
|
@dv_time.fractional_second.should == 0.2
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
+
it 'timezone should be -0900' do
|
|
30
|
+
@dv_time.timezone.should == '-0900'
|
|
31
|
+
end
|
|
32
|
+
|
|
29
33
|
it 'magnitude should 40650.2' do
|
|
30
34
|
@dv_time.magnitude.should == 40650.2
|
|
31
35
|
end
|
|
32
|
-
|
|
36
|
+
|
|
33
37
|
it 'should be ' do
|
|
34
38
|
diff_time = DvTime.new(:value => '15:36:48.05')
|
|
35
39
|
@dv_time.diff(diff_time).value.should =='P0Y0M0W0DT4H19M17.85S'
|
data/spec/spec_helper.rb
CHANGED