2
require 'xsd/datatypes'
8
class TestXSD < Test::Unit::TestCase
9
NegativeZero = (-1.0 / (1.0 / 0.0))
17
def assert_parsed_result(klass, str)
19
assert_equal(str, o.to_s)
24
assert_equal(nil, o.type)
28
o = XSD::XSDAnySimpleType.new
29
assert_equal(nil, o.data)
30
assert_equal(true, o.is_nil)
31
assert_equal('', o.to_s)
36
assert_equal(XSD::Namespace, o.type.namespace)
37
assert_equal(XSD::NilLiteral, o.type.name)
38
assert_equal(nil, o.data)
39
assert_equal(true, o.is_nil)
41
o = XSD::XSDNil.new(nil)
42
assert_equal(true, o.is_nil)
43
assert_equal(nil, o.data)
44
assert_equal("", o.to_s)
45
o = XSD::XSDNil.new('var')
46
assert_equal(false, o.is_nil)
47
assert_equal('var', o.data)
48
assert_equal('var', o.to_s)
51
def test_XSDString_UTF8
52
o = XSD::XSDString.new
53
assert_equal(XSD::Namespace, o.type.namespace)
54
assert_equal(XSD::StringLiteral, o.type.name)
55
assert_equal(nil, o.data)
56
assert_equal(true, o.is_nil)
59
assert_equal(str, XSD::XSDString.new(str).data)
60
assert_equal(str, XSD::XSDString.new(str).to_s)
61
assert_raises(XSD::ValueSpaceError) do
62
XSD::XSDString.new("\0")
64
assert_raises(XSD::ValueSpaceError) do
65
p XSD::XSDString.new("\xC0\xC0").to_s
69
def test_XSDString_NONE
70
XSD::Charset.module_eval { @encoding_backup = @encoding; @encoding = "NONE" }
72
o = XSD::XSDString.new
73
assert_equal(XSD::Namespace, o.type.namespace)
74
assert_equal(XSD::StringLiteral, o.type.name)
75
assert_equal(nil, o.data)
76
assert_equal(true, o.is_nil)
79
assert_equal(str, XSD::XSDString.new(str).data)
80
assert_equal(str, XSD::XSDString.new(str).to_s)
81
assert_raises(XSD::ValueSpaceError) do
82
XSD::XSDString.new("\0")
84
assert_raises(XSD::ValueSpaceError) do
85
p XSD::XSDString.new("\xC0\xC0").to_s
88
XSD::Charset.module_eval { @encoding = @encoding_backup }
93
o = XSD::XSDBoolean.new
94
assert_equal(XSD::Namespace, o.type.namespace)
95
assert_equal(XSD::BooleanLiteral, o.type.name)
96
assert_equal(nil, o.data)
97
assert_equal(true, o.is_nil)
105
targets.each do |data, expected|
106
assert_equal(expected, XSD::XSDBoolean.new(data).data)
107
assert_equal(expected.to_s, XSD::XSDBoolean.new(data).to_s)
110
assert_raises(XSD::ValueSpaceError) do
111
XSD::XSDBoolean.new("nil").to_s
116
o = XSD::XSDDecimal.new
117
assert_equal(XSD::Namespace, o.type.namespace)
118
assert_equal(XSD::DecimalLiteral, o.type.name)
119
assert_equal(nil, o.data)
120
assert_equal(true, o.is_nil)
126
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
127
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
128
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789,
130
targets.each do |dec|
131
assert_equal(dec.to_s, XSD::XSDDecimal.new(dec).data)
138
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
139
"-12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123.45678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
141
targets.each do |str|
142
assert_equal(str, XSD::XSDDecimal.new(str).to_s)
154
"+0.12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
155
"0.1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
158
".0000012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
159
"0.000001234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"
162
"-12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.",
163
"-12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
166
targets.each do |data, expected|
167
assert_equal(expected, XSD::XSDDecimal.new(data).to_s)
176
assert_raises(XSD::ValueSpaceError) do
177
XSD::XSDDecimal.new(d)
183
o = XSD::XSDFloat.new
184
assert_equal(XSD::Namespace, o.type.namespace)
185
assert_equal(XSD::FloatLiteral, o.type.name)
186
assert_equal(nil, o.data)
187
assert_equal(true, o.is_nil)
196
assert_equal(f, XSD::XSDFloat.new(f).data)
206
assert_equal(f, XSD::XSDFloat.new(f).to_s)
210
[3, "+3"], # should be 3.0?
212
[3.14159265358979, "+3.141592654"],
213
[12.34e36, "+1.234e+37"],
214
[1.402e-45, "+1.402e-45"],
215
[-1.402e-45, "-1.402e-45"],
216
["1.402e", "+1.402"],
217
["12.34E36", "+1.234e+37"],
218
["1.402E-45", "+1.402e-45"],
219
["-1.402E-45", "-1.402e-45"],
220
["1.402E", "+1.402"],
222
targets.each do |f, str|
223
assert_equal(str, XSD::XSDFloat.new(f).to_s)
226
assert_equal("+0", XSD::XSDFloat.new(+0.0).to_s)
227
assert_equal("-0", XSD::XSDFloat.new(NegativeZero).to_s)
228
assert(XSD::XSDFloat.new(0.0/0.0).data.nan?)
229
assert_equal("INF", XSD::XSDFloat.new(1.0/0.0).to_s)
230
assert_equal(1, XSD::XSDFloat.new(1.0/0.0).data.infinite?)
231
assert_equal("-INF", XSD::XSDFloat.new(-1.0/0.0).to_s)
232
assert_equal(-1, XSD::XSDFloat.new(-1.0/0.0).data.infinite?)
241
assert_raises(XSD::ValueSpaceError) do
248
o = XSD::XSDDouble.new
249
assert_equal(XSD::Namespace, o.type.namespace)
250
assert_equal(XSD::DoubleLiteral, o.type.name)
251
assert_equal(nil, o.data)
252
assert_equal(true, o.is_nil)
261
assert_equal(f, XSD::XSDDouble.new(f).data)
271
assert_equal(f, XSD::XSDDouble.new(f).to_s)
275
[3, "+3"], # should be 3.0?
277
[3.14159265358979, "+3.14159265358979"],
278
[12.34e36, "+1.234e+37"],
279
[1.402e-45, "+1.402e-45"],
280
[-1.402e-45, "-1.402e-45"],
281
["1.402e", "+1.402"],
282
["12.34E36", "+1.234e+37"],
283
["1.402E-45", "+1.402e-45"],
284
["-1.402E-45", "-1.402e-45"],
285
["1.402E", "+1.402"],
287
targets.each do |f, str|
288
assert_equal(str, XSD::XSDDouble.new(f).to_s)
291
assert_equal("+0", XSD::XSDFloat.new(+0.0).to_s)
292
assert_equal("-0", XSD::XSDFloat.new(NegativeZero).to_s)
293
assert_equal("NaN", XSD::XSDDouble.new(0.0/0.0).to_s)
294
assert(XSD::XSDDouble.new(0.0/0.0).data.nan?)
295
assert_equal("INF", XSD::XSDDouble.new(1.0/0.0).to_s)
296
assert_equal(1, XSD::XSDDouble.new(1.0/0.0).data.infinite?)
297
assert_equal("-INF", XSD::XSDDouble.new(-1.0/0.0).to_s)
298
assert_equal(-1, XSD::XSDDouble.new(-1.0/0.0).data.infinite?)
306
assert_raises(XSD::ValueSpaceError) do
307
XSD::XSDDouble.new(d)
313
o = XSD::XSDDuration.new
314
assert_equal(XSD::Namespace, o.type.namespace)
315
assert_equal(XSD::DurationLiteral, o.type.name)
316
assert_equal(nil, o.data)
317
assert_equal(true, o.is_nil)
321
"P1234Y5678M9012DT3456H7890M1234.5678S",
322
"P0DT3456H7890M1234.5678S",
324
"-P1234Y5678M9012DT3456H7890M1234.5678S",
325
"P5678M9012DT3456H7890M1234.5678S",
326
"-P1234Y9012DT3456H7890M1234.5678S",
327
"+P1234Y5678MT3456H7890M1234.5678S",
328
"P1234Y5678M9012DT7890M1234.5678S",
329
"-P1234Y5678M9012DT3456H1234.5678S",
330
"+P1234Y5678M9012DT3456H7890M",
332
"-P567800000000000M",
333
"+P901200000000000D",
334
"P0DT345600000000000H",
335
"-P0DT789000000000000M",
336
"+P0DT123400000000000.000000000005678S",
341
targets.each do |str|
342
assert_parsed_result(XSD::XSDDuration, str)
350
["P01234Y5678M9012DT3456H7890M1234.5678S",
351
"P1234Y5678M9012DT3456H7890M1234.5678S"],
352
["P1234Y005678M9012DT3456H7890M1234.5678S",
353
"P1234Y5678M9012DT3456H7890M1234.5678S"],
354
["P1234Y5678M0009012DT3456H7890M1234.5678S",
355
"P1234Y5678M9012DT3456H7890M1234.5678S"],
356
["P1234Y5678M9012DT00003456H7890M1234.5678S",
357
"P1234Y5678M9012DT3456H7890M1234.5678S"],
358
["P1234Y5678M9012DT3456H000007890M1234.5678S",
359
"P1234Y5678M9012DT3456H7890M1234.5678S"],
360
["P1234Y5678M9012DT3456H7890M0000001234.5678S",
361
"P1234Y5678M9012DT3456H7890M1234.5678S"],
363
targets.each do |data, expected|
364
assert_equal(expected, XSD::XSDDuration.new(data).to_s)
369
o = XSD::XSDDateTime.new
370
assert_equal(XSD::Namespace, o.type.namespace)
371
assert_equal(XSD::DateTimeLiteral, o.type.name)
372
assert_equal(nil, o.data)
373
assert_equal(true, o.is_nil)
376
"2002-05-18T16:52:20Z",
377
"0001-01-01T00:00:00Z",
378
"9999-12-31T23:59:59Z",
379
"19999-12-31T23:59:59Z",
380
"2002-12-31T23:59:59.999Z",
381
"2002-12-31T23:59:59.001Z",
382
"2002-12-31T23:59:59.99999999999999999999Z",
383
"2002-12-31T23:59:59.00000000000000000001Z",
384
"2002-12-31T23:59:59+09:00",
385
"2002-12-31T23:59:59+00:01",
386
"2002-12-31T23:59:59-00:01",
387
"2002-12-31T23:59:59-23:59",
388
"2002-12-31T23:59:59.00000000000000000001+13:30",
389
"2002-12-31T23:59:59.5137Z",
390
"2002-12-31T23:59:59.51375Z", # 411/800
391
"2002-12-31T23:59:59.51375+12:34",
392
"-2002-05-18T16:52:20Z",
393
"-4713-01-01T12:00:00Z",
394
"-2002-12-31T23:59:59+00:01",
395
"-0001-12-31T23:59:59.00000000000000000001+13:30",
397
targets.each do |str|
398
assert_parsed_result(XSD::XSDDateTime, str)
402
["2002-12-31T23:59:59.00",
403
"2002-12-31T23:59:59Z"],
404
["2002-12-31T23:59:59+00:00",
405
"2002-12-31T23:59:59Z"],
406
["2002-12-31T23:59:59-00:00",
407
"2002-12-31T23:59:59Z"],
408
["-2002-12-31T23:59:59.00",
409
"-2002-12-31T23:59:59Z"],
410
["-2002-12-31T23:59:59+00:00",
411
"-2002-12-31T23:59:59Z"],
412
["-2002-12-31T23:59:59-00:00",
413
"-2002-12-31T23:59:59Z"],
415
targets.each do |data, expected|
416
assert_equal(expected, XSD::XSDDateTime.new(data).to_s)
417
d = DateTime.parse(data)
418
d >>= 12 if d.year < 0 # XSDDateTime.year(-1) == DateTime.year(0)
419
assert_equal(expected, XSD::XSDDateTime.new(d).to_s)
423
"0000-05-18T16:52:20Z",
430
assert_raises(XSD::ValueSpaceError, d.to_s) do
431
XSD::XSDDateTime.new(d)
438
assert_equal(XSD::Namespace, o.type.namespace)
439
assert_equal(XSD::TimeLiteral, o.type.name)
440
assert_equal(nil, o.data)
441
assert_equal(true, o.is_nil)
449
"23:59:59.99999999999999999999Z",
450
"23:59:59.00000000000000000001Z",
455
"23:59:59.00000000000000000001+13:30",
457
"23:59:59.51345+12:34",
460
targets.each do |str|
461
assert_parsed_result(XSD::XSDTime, str)
472
targets.each do |data, expected|
473
assert_equal(expected, XSD::XSDTime.new(data).to_s)
479
assert_equal(XSD::Namespace, o.type.namespace)
480
assert_equal(XSD::DateLiteral, o.type.name)
481
assert_equal(nil, o.data)
482
assert_equal(true, o.is_nil)
499
targets.each do |str|
500
assert_parsed_result(XSD::XSDDate, str)
512
["-2002-12-31+00:00",
514
["-2002-12-31-00:00",
517
targets.each do |data, expected|
518
assert_equal(expected, XSD::XSDDate.new(data).to_s)
520
d >>= 12 if d.year < 0 # XSDDate.year(-1) == Date.year(0)
521
assert_equal(expected, XSD::XSDDate.new(d).to_s)
526
class TestXSD2 < Test::Unit::TestCase
535
def assert_parsed_result(klass, str)
537
assert_equal(str, o.to_s)
540
def test_XSDGYearMonth
541
o = XSD::XSDGYearMonth.new
542
assert_equal(XSD::Namespace, o.type.namespace)
543
assert_equal(XSD::GYearMonthLiteral, o.type.name)
544
assert_equal(nil, o.data)
545
assert_equal(true, o.is_nil)
562
targets.each do |str|
563
assert_parsed_result(XSD::XSDGYearMonth, str)
580
targets.each do |data, expected|
581
assert_equal(expected, XSD::XSDGYearMonth.new(data).to_s)
586
o = XSD::XSDGYear.new
587
assert_equal(XSD::Namespace, o.type.namespace)
588
assert_equal(XSD::GYearLiteral, o.type.name)
589
assert_equal(nil, o.data)
590
assert_equal(true, o.is_nil)
607
targets.each do |str|
608
assert_parsed_result(XSD::XSDGYear, str)
625
targets.each do |data, expected|
626
assert_equal(expected, XSD::XSDGYear.new(data).to_s)
630
def test_XSDGMonthDay
631
o = XSD::XSDGMonthDay.new
632
assert_equal(XSD::Namespace, o.type.namespace)
633
assert_equal(XSD::GMonthDayLiteral, o.type.name)
634
assert_equal(nil, o.data)
635
assert_equal(true, o.is_nil)
647
targets.each do |str|
648
assert_parsed_result(XSD::XSDGMonthDay, str)
659
targets.each do |data, expected|
660
assert_equal(expected, XSD::XSDGMonthDay.new(data).to_s)
666
assert_equal(XSD::Namespace, o.type.namespace)
667
assert_equal(XSD::GDayLiteral, o.type.name)
668
assert_equal(nil, o.data)
669
assert_equal(true, o.is_nil)
681
targets.each do |str|
682
assert_parsed_result(XSD::XSDGDay, str)
693
targets.each do |data, expected|
694
assert_equal(expected, XSD::XSDGDay.new(data).to_s)
699
o = XSD::XSDGMonth.new
700
assert_equal(XSD::Namespace, o.type.namespace)
701
assert_equal(XSD::GMonthLiteral, o.type.name)
702
assert_equal(nil, o.data)
703
assert_equal(true, o.is_nil)
715
targets.each do |str|
716
assert_parsed_result(XSD::XSDGMonth, str)
727
targets.each do |data, expected|
728
assert_equal(expected, XSD::XSDGMonth.new(data).to_s)
732
def test_XSDHexBinary
733
o = XSD::XSDHexBinary.new
734
assert_equal(XSD::Namespace, o.type.namespace)
735
assert_equal(XSD::HexBinaryLiteral, o.type.name)
736
assert_equal(nil, o.data)
737
assert_equal(true, o.is_nil)
741
"\xe3\x81\xaa\xe3\x81\xb2",
745
targets.each do |str|
746
assert_equal(str, XSD::XSDHexBinary.new(str).string)
747
assert_equal(str.unpack("H*")[0 ].tr('a-f', 'A-F'),
748
XSD::XSDHexBinary.new(str).data)
749
o = XSD::XSDHexBinary.new
750
o.set_encoded(str.unpack("H*")[0 ].tr('a-f', 'A-F'))
751
assert_equal(str, o.string)
752
o.set_encoded(str.unpack("H*")[0 ].tr('A-F', 'a-f'))
753
assert_equal(str, o.string)
761
assert_raises(XSD::ValueSpaceError, d.to_s) do
762
o = XSD::XSDHexBinary.new
769
def test_XSDBase64Binary
770
o = XSD::XSDBase64Binary.new
771
assert_equal(XSD::Namespace, o.type.namespace)
772
assert_equal(XSD::Base64BinaryLiteral, o.type.name)
773
assert_equal(nil, o.data)
774
assert_equal(true, o.is_nil)
778
"\xe3\x81\xaa\xe3\x81\xb2",
782
targets.each do |str|
783
assert_equal(str, XSD::XSDBase64Binary.new(str).string)
784
assert_equal([str ].pack("m").chomp, XSD::XSDBase64Binary.new(str).data)
785
o = XSD::XSDBase64Binary.new
786
o.set_encoded([str ].pack("m").chomp)
787
assert_equal(str, o.string)
795
assert_raises(XSD::ValueSpaceError, d.to_s) do
796
o = XSD::XSDBase64Binary.new
804
o = XSD::XSDAnyURI.new
805
assert_equal(XSD::Namespace, o.type.namespace)
806
assert_equal(XSD::AnyURILiteral, o.type.name)
807
assert_equal(nil, o.data)
808
assert_equal(true, o.is_nil)
810
# Too few tests here I know. Believe uri module. :)
814
"http://foo/bar/baz",
815
"http://foo/bar#baz",
816
"http://foo/bar%20%20?a+b",
817
"HTTP://FOO/BAR%20%20?A+B",
819
targets.each do |str|
820
assert_parsed_result(XSD::XSDAnyURI, str)
825
o = XSD::XSDQName.new
826
assert_equal(XSD::Namespace, o.type.namespace)
827
assert_equal(XSD::QNameLiteral, o.type.name)
828
assert_equal(nil, o.data)
829
assert_equal(true, o.is_nil)
831
# More strict test is needed but current implementation allows all non-':'
832
# chars like ' ', C0 or C1...
838
targets.each do |str|
839
assert_parsed_result(XSD::XSDQName, str)
849
o = XSD::XSDInteger.new
850
assert_equal(XSD::Namespace, o.type.namespace)
851
assert_equal(XSD::IntegerLiteral, o.type.name)
852
assert_equal(nil, o.data)
853
assert_equal(true, o.is_nil)
859
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
860
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
861
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789,
863
targets.each do |int|
864
assert_equal(int, XSD::XSDInteger.new(int).data)
871
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
872
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
873
"-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
875
targets.each do |str|
876
assert_equal(str, XSD::XSDInteger.new(str).to_s)
885
"+12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
886
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
889
targets.each do |data, expected|
890
assert_equal(expected, XSD::XSDInteger.new(data).to_s)
898
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890."
901
assert_raises(XSD::ValueSpaceError) do
902
XSD::XSDInteger.new(d)
907
def test_XSDNonPositiveInteger
908
o = XSD::XSDNonPositiveInteger.new
909
assert_equal(XSD::Namespace, o.type.namespace)
910
assert_equal(XSD::NonPositiveIntegerLiteral, o.type.name)
911
assert_equal(nil, o.data)
912
assert_equal(true, o.is_nil)
917
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789,
919
targets.each do |int|
920
assert_equal(int, XSD::XSDNonPositiveInteger.new(int).data)
926
"-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
928
targets.each do |str|
929
assert_equal(str, XSD::XSDNonPositiveInteger.new(str).to_s)
936
targets.each do |data, expected|
937
assert_equal(expected, XSD::XSDNonPositiveInteger.new(data).to_s)
945
"-12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890."
948
assert_raises(XSD::ValueSpaceError) do
949
XSD::XSDNonPositiveInteger.new(d)
954
def test_XSDNegativeInteger
955
o = XSD::XSDNegativeInteger.new
956
assert_equal(XSD::Namespace, o.type.namespace)
957
assert_equal(XSD::NegativeIntegerLiteral, o.type.name)
958
assert_equal(nil, o.data)
959
assert_equal(true, o.is_nil)
964
-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789,
966
targets.each do |int|
967
assert_equal(int, XSD::XSDNegativeInteger.new(int).data)
973
"-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789",
975
targets.each do |str|
976
assert_equal(str, XSD::XSDNegativeInteger.new(str).to_s)
982
targets.each do |data, expected|
983
assert_equal(expected, XSD::XSDNegativeInteger.new(data).to_s)
991
"-12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890."
994
assert_raises(XSD::ValueSpaceError) do
995
XSD::XSDNegativeInteger.new(d)
1001
o = XSD::XSDLong.new
1002
assert_equal(XSD::Namespace, o.type.namespace)
1003
assert_equal(XSD::LongLiteral, o.type.name)
1004
assert_equal(nil, o.data)
1005
assert_equal(true, o.is_nil)
1011
9223372036854775807,
1012
-9223372036854775808,
1014
targets.each do |lng|
1015
assert_equal(lng, XSD::XSDLong.new(lng).data)
1022
"9223372036854775807",
1023
"-9223372036854775808",
1025
targets.each do |str|
1026
assert_equal(str, XSD::XSDLong.new(str).to_s)
1033
["-000123", "-123"],
1035
targets.each do |data, expected|
1036
assert_equal(expected, XSD::XSDLong.new(data).to_s)
1040
9223372036854775808,
1041
-9223372036854775809,
1048
assert_raises(XSD::ValueSpaceError) do
1056
assert_equal(XSD::Namespace, o.type.namespace)
1057
assert_equal(XSD::IntLiteral, o.type.name)
1058
assert_equal(nil, o.data)
1059
assert_equal(true, o.is_nil)
1068
targets.each do |lng|
1069
assert_equal(lng, XSD::XSDInt.new(lng).data)
1079
targets.each do |str|
1080
assert_equal(str, XSD::XSDInt.new(str).to_s)
1087
["-000123", "-123"],
1089
targets.each do |data, expected|
1090
assert_equal(expected, XSD::XSDInt.new(data).to_s)
1102
assert_raises(XSD::ValueSpaceError) do
1109
o = XSD::XSDShort.new
1110
assert_equal(XSD::Namespace, o.type.namespace)
1111
assert_equal(XSD::ShortLiteral, o.type.name)
1112
assert_equal(nil, o.data)
1113
assert_equal(true, o.is_nil)
1122
targets.each do |lng|
1123
assert_equal(lng, XSD::XSDShort.new(lng).data)
1133
targets.each do |str|
1134
assert_equal(str, XSD::XSDShort.new(str).to_s)
1141
["-000123", "-123"],
1143
targets.each do |data, expected|
1144
assert_equal(expected, XSD::XSDShort.new(data).to_s)
1156
assert_raises(XSD::ValueSpaceError) do
1157
XSD::XSDShort.new(d)
1163
o = XSD::XSDByte.new
1164
assert_equal(XSD::Namespace, o.type.namespace)
1165
assert_equal(XSD::ByteLiteral, o.type.name)
1166
assert_equal(nil, o.data)
1167
assert_equal(true, o.is_nil)
1176
targets.each do |lng|
1177
assert_equal(lng, XSD::XSDByte.new(lng).data)
1187
targets.each do |str|
1188
assert_equal(str, XSD::XSDByte.new(str).to_s)
1195
["-000123", "-123"],
1197
targets.each do |data, expected|
1198
assert_equal(expected, XSD::XSDByte.new(data).to_s)
1210
assert_raises(XSD::ValueSpaceError) do
1216
def test_XSDNonNegativeInteger
1217
o = XSD::XSDNonNegativeInteger.new
1218
assert_equal(XSD::Namespace, o.type.namespace)
1219
assert_equal(XSD::NonNegativeIntegerLiteral, o.type.name)
1220
assert_equal(nil, o.data)
1221
assert_equal(true, o.is_nil)
1226
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
1228
targets.each do |int|
1229
assert_equal(int, XSD::XSDNonNegativeInteger.new(int).data)
1235
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
1237
targets.each do |str|
1238
assert_equal(str, XSD::XSDNonNegativeInteger.new(str).to_s)
1246
"+12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
1247
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
1250
targets.each do |data, expected|
1251
assert_equal(expected, XSD::XSDNonNegativeInteger.new(data).to_s)
1258
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890."
1261
assert_raises(XSD::ValueSpaceError) do
1262
XSD::XSDNonNegativeInteger.new(d)
1267
def test_XSDUnsignedLong
1268
o = XSD::XSDUnsignedLong.new
1269
assert_equal(XSD::Namespace, o.type.namespace)
1270
assert_equal(XSD::UnsignedLongLiteral, o.type.name)
1271
assert_equal(nil, o.data)
1272
assert_equal(true, o.is_nil)
1277
18446744073709551615,
1279
targets.each do |int|
1280
assert_equal(int, XSD::XSDUnsignedLong.new(int).data)
1286
"18446744073709551615",
1288
targets.each do |str|
1289
assert_equal(str, XSD::XSDUnsignedLong.new(str).to_s)
1296
["+18446744073709551615", "18446744073709551615"],
1298
targets.each do |data, expected|
1299
assert_equal(expected, XSD::XSDUnsignedLong.new(data).to_s)
1306
"18446744073709551615."
1309
assert_raises(XSD::ValueSpaceError) do
1310
XSD::XSDUnsignedLong.new(d)
1315
def test_XSDUnsignedInt
1316
o = XSD::XSDUnsignedInt.new
1317
assert_equal(XSD::Namespace, o.type.namespace)
1318
assert_equal(XSD::UnsignedIntLiteral, o.type.name)
1319
assert_equal(nil, o.data)
1320
assert_equal(true, o.is_nil)
1327
targets.each do |int|
1328
assert_equal(int, XSD::XSDUnsignedInt.new(int).data)
1336
targets.each do |str|
1337
assert_equal(str, XSD::XSDUnsignedInt.new(str).to_s)
1344
["+4294967295", "4294967295"],
1346
targets.each do |data, expected|
1347
assert_equal(expected, XSD::XSDUnsignedInt.new(data).to_s)
1357
assert_raises(XSD::ValueSpaceError) do
1358
XSD::XSDUnsignedInt.new(d)
1363
def test_XSDUnsignedShort
1364
o = XSD::XSDUnsignedShort.new
1365
assert_equal(XSD::Namespace, o.type.namespace)
1366
assert_equal(XSD::UnsignedShortLiteral, o.type.name)
1367
assert_equal(nil, o.data)
1368
assert_equal(true, o.is_nil)
1375
targets.each do |int|
1376
assert_equal(int, XSD::XSDUnsignedShort.new(int).data)
1384
targets.each do |str|
1385
assert_equal(str, XSD::XSDUnsignedShort.new(str).to_s)
1392
["+65535", "65535"],
1394
targets.each do |data, expected|
1395
assert_equal(expected, XSD::XSDUnsignedShort.new(data).to_s)
1405
assert_raises(XSD::ValueSpaceError) do
1406
XSD::XSDUnsignedShort.new(d)
1411
def test_XSDUnsignedByte
1412
o = XSD::XSDUnsignedByte.new
1413
assert_equal(XSD::Namespace, o.type.namespace)
1414
assert_equal(XSD::UnsignedByteLiteral, o.type.name)
1415
assert_equal(nil, o.data)
1416
assert_equal(true, o.is_nil)
1423
targets.each do |int|
1424
assert_equal(int, XSD::XSDUnsignedByte.new(int).data)
1432
targets.each do |str|
1433
assert_equal(str, XSD::XSDUnsignedByte.new(str).to_s)
1442
targets.each do |data, expected|
1443
assert_equal(expected, XSD::XSDUnsignedByte.new(data).to_s)
1453
assert_raises(XSD::ValueSpaceError) do
1454
XSD::XSDUnsignedByte.new(d)
1459
def test_XSDPositiveInteger
1460
o = XSD::XSDPositiveInteger.new
1461
assert_equal(XSD::Namespace, o.type.namespace)
1462
assert_equal(XSD::PositiveIntegerLiteral, o.type.name)
1463
assert_equal(nil, o.data)
1464
assert_equal(true, o.is_nil)
1469
12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890,
1471
targets.each do |int|
1472
assert_equal(int, XSD::XSDPositiveInteger.new(int).data)
1478
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
1480
targets.each do |str|
1481
assert_equal(str, XSD::XSDPositiveInteger.new(str).to_s)
1488
"+12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890",
1489
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
1492
targets.each do |data, expected|
1493
assert_equal(expected, XSD::XSDPositiveInteger.new(data).to_s)
1500
"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890."
1503
assert_raises(XSD::ValueSpaceError) do
1504
XSD::XSDPositiveInteger.new(d)