iso8601 0.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +13 -2
- data/.rspec +2 -0
- data/Gemfile +6 -2
- data/LICENSE +22 -503
- data/README.md +26 -5
- data/Rakefile +2 -1
- data/iso8601.gemspec +24 -20
- data/lib/iso8601.rb +8 -6
- data/lib/iso8601/atoms.rb +65 -32
- data/lib/iso8601/dateTime.rb +45 -22
- data/lib/iso8601/duration.rb +113 -57
- data/lib/iso8601/errors.rb +3 -2
- data/spec/iso8601/atoms_spec.rb +176 -0
- data/spec/iso8601/dateTime_spec.rb +120 -0
- data/spec/iso8601/duration_spec.rb +163 -0
- data/spec/spec_helper.rb +4 -0
- metadata +62 -54
- data/test/iso8601/test_atoms.rb +0 -100
- data/test/iso8601/test_dateTime.rb +0 -72
- data/test/iso8601/test_duration.rb +0 -95
- data/test/test_iso8601.rb +0 -4
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,36 +1,48 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: iso8601
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
version: "0.2"
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.0
|
5
|
+
prerelease:
|
9
6
|
platform: ruby
|
10
|
-
authors:
|
7
|
+
authors:
|
11
8
|
- Arnau Siches
|
12
9
|
autorequire:
|
13
10
|
bindir: bin
|
14
11
|
cert_chain: []
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
12
|
+
date: 2012-07-15 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &70151454366940 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2.0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70151454366940
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: ZenTest
|
27
|
+
requirement: &70151454365560 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '4.8'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70151454365560
|
36
|
+
description: ! " ISO8601 is a simple implementation in Ruby of the ISO 8601 (Data
|
37
|
+
elements and \n interchange formats - Information interchange - Representation
|
38
|
+
of dates \n and times) standard.\n"
|
39
|
+
email: arnau.siches@gmail.com
|
26
40
|
executables: []
|
27
|
-
|
28
41
|
extensions: []
|
29
|
-
|
30
42
|
extra_rdoc_files: []
|
31
|
-
|
32
|
-
files:
|
43
|
+
files:
|
33
44
|
- .gitignore
|
45
|
+
- .rspec
|
34
46
|
- Gemfile
|
35
47
|
- LICENSE
|
36
48
|
- README.md
|
@@ -41,42 +53,38 @@ files:
|
|
41
53
|
- lib/iso8601/dateTime.rb
|
42
54
|
- lib/iso8601/duration.rb
|
43
55
|
- lib/iso8601/errors.rb
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
48
|
-
has_rdoc: true
|
56
|
+
- spec/iso8601/atoms_spec.rb
|
57
|
+
- spec/iso8601/dateTime_spec.rb
|
58
|
+
- spec/iso8601/duration_spec.rb
|
59
|
+
- spec/spec_helper.rb
|
49
60
|
homepage: https://github.com/arnau/ISO8601
|
50
|
-
licenses:
|
51
|
-
|
61
|
+
licenses:
|
62
|
+
- MIT
|
52
63
|
post_install_message:
|
53
64
|
rdoc_options: []
|
54
|
-
|
55
|
-
require_paths:
|
65
|
+
require_paths:
|
56
66
|
- lib
|
57
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
requirements:
|
66
|
-
- -
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
|
69
|
-
- 0
|
70
|
-
version: "0"
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
71
79
|
requirements: []
|
72
|
-
|
73
80
|
rubyforge_project: iso8601
|
74
|
-
rubygems_version: 1.
|
81
|
+
rubygems_version: 1.8.10
|
75
82
|
signing_key:
|
76
83
|
specification_version: 3
|
77
|
-
summary: Ruby parser to work with
|
78
|
-
test_files:
|
79
|
-
-
|
80
|
-
-
|
81
|
-
-
|
82
|
-
-
|
84
|
+
summary: Ruby parser to work with ISO 8601 dateTimes and durations - http://en.wikipedia.org/wiki/ISO_8601
|
85
|
+
test_files:
|
86
|
+
- spec/iso8601/atoms_spec.rb
|
87
|
+
- spec/iso8601/dateTime_spec.rb
|
88
|
+
- spec/iso8601/duration_spec.rb
|
89
|
+
- spec/spec_helper.rb
|
90
|
+
has_rdoc: yard
|
data/test/iso8601/test_atoms.rb
DELETED
@@ -1,100 +0,0 @@
|
|
1
|
-
require "test/unit"
|
2
|
-
require "iso8601"
|
3
|
-
|
4
|
-
|
5
|
-
class TestAtom < Test::Unit::TestCase
|
6
|
-
def test_arguments
|
7
|
-
assert_raise(TypeError) { ISO8601::Atom.new("1") }
|
8
|
-
assert_raise(TypeError) { ISO8601::Atom.new(true) }
|
9
|
-
assert_nothing_raised() { ISO8601::Atom.new(-1) }
|
10
|
-
assert_nothing_raised() { ISO8601::Atom.new(0) }
|
11
|
-
assert_nothing_raised() { ISO8601::Atom.new(1) }
|
12
|
-
assert_nothing_raised() { ISO8601::Atom.new(1.1) }
|
13
|
-
assert_nothing_raised() { ISO8601::Atom.new(-1.1) }
|
14
|
-
end
|
15
|
-
end
|
16
|
-
class TestYears < Test::Unit::TestCase
|
17
|
-
def test_factor
|
18
|
-
assert_equal(31536000, ISO8601::Years.new(2).factor)
|
19
|
-
assert_equal(31536000, ISO8601::Years.new(1, ISO8601::DateTime.new("2010-01-01")).factor, "common year")
|
20
|
-
assert_equal(31622400, ISO8601::Years.new(1, ISO8601::DateTime.new("2000-01-01")).factor, "leap year")
|
21
|
-
end
|
22
|
-
def test_to_seconds
|
23
|
-
assert_equal(63072000, ISO8601::Years.new(2).to_seconds)
|
24
|
-
assert_equal(-63072000, ISO8601::Years.new(-2).to_seconds)
|
25
|
-
assert_equal(63072000, ISO8601::Years.new(2, ISO8601::DateTime.new("2010-01-01")).to_seconds, "common year")
|
26
|
-
assert_equal(378691200, ISO8601::Years.new(12, ISO8601::DateTime.new("2010-01-01")).to_seconds, "common year")
|
27
|
-
assert_equal(473385600, ISO8601::Years.new(15, ISO8601::DateTime.new("2010-01-01")).to_seconds, "common year")
|
28
|
-
assert_equal(63158400, ISO8601::Years.new(2, ISO8601::DateTime.new("2000-01-01")).to_seconds, "leap year")
|
29
|
-
end
|
30
|
-
end
|
31
|
-
class TestMonths < Test::Unit::TestCase
|
32
|
-
def test_factor
|
33
|
-
assert_equal(2628000, ISO8601::Months.new(2).factor)
|
34
|
-
assert_equal(2678400, ISO8601::Months.new(1, ISO8601::DateTime.new("2010-01-01")).factor, "common year")
|
35
|
-
assert_equal(2678400, ISO8601::Months.new(1, ISO8601::DateTime.new("2000-01-01")).factor, "leap year")
|
36
|
-
assert_equal(2419200, ISO8601::Months.new(1, ISO8601::DateTime.new("2010-02-01")).factor, "common year, february")
|
37
|
-
assert_equal(2505600, ISO8601::Months.new(1, ISO8601::DateTime.new("2000-02-01")).factor, "leap year, february")
|
38
|
-
|
39
|
-
end
|
40
|
-
def test_to_seconds
|
41
|
-
assert_equal(5256000, ISO8601::Months.new(2).to_seconds)
|
42
|
-
assert_equal(-5256000, ISO8601::Months.new(-2).to_seconds)
|
43
|
-
assert_equal(5097600, ISO8601::Months.new(2, ISO8601::DateTime.new("2010-01-01")).to_seconds, "common year")
|
44
|
-
assert_equal(5184000, ISO8601::Months.new(2, ISO8601::DateTime.new("2000-01-01")).to_seconds, "leap year")
|
45
|
-
assert_equal(5097600, ISO8601::Months.new(2, ISO8601::DateTime.new("2010-02-01")).to_seconds, "common year, february")
|
46
|
-
assert_equal(5184000, ISO8601::Months.new(2, ISO8601::DateTime.new("2000-02-01")).to_seconds, "leap year, february")
|
47
|
-
|
48
|
-
assert_equal(31622400, ISO8601::Months.new(12, ISO8601::DateTime.new("2000-02-01")).to_seconds, "leap year, february")
|
49
|
-
assert_equal(ISO8601::Years.new(1, ISO8601::DateTime.new("2000-02-01")).to_seconds, ISO8601::Months.new(12, ISO8601::DateTime.new("2000-02-01")).to_seconds, "leap year, february")
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
class TestWeeks < Test::Unit::TestCase
|
54
|
-
def test_factor
|
55
|
-
assert_equal(604800, ISO8601::Weeks.new(2).factor)
|
56
|
-
end
|
57
|
-
def test_to_seconds
|
58
|
-
assert_equal(1209600, ISO8601::Weeks.new(2).to_seconds)
|
59
|
-
assert_equal(-1209600, ISO8601::Weeks.new(-2).to_seconds)
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
class TestDays < Test::Unit::TestCase
|
64
|
-
def test_factor
|
65
|
-
assert_equal(86400, ISO8601::Days.new(2).factor)
|
66
|
-
end
|
67
|
-
def test_to_seconds
|
68
|
-
assert_equal(172800, ISO8601::Days.new(2).to_seconds)
|
69
|
-
assert_equal(-172800, ISO8601::Days.new(-2).to_seconds)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
class TestHours < Test::Unit::TestCase
|
73
|
-
def test_factor
|
74
|
-
assert_equal(3600, ISO8601::Hours.new(2).factor)
|
75
|
-
end
|
76
|
-
def test_to_seconds
|
77
|
-
assert_equal(7200, ISO8601::Hours.new(2).to_seconds)
|
78
|
-
assert_equal(-7200, ISO8601::Hours.new(-2).to_seconds)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
class TestMinutes < Test::Unit::TestCase
|
82
|
-
def test_factor
|
83
|
-
assert_equal(60, ISO8601::Minutes.new(2).factor)
|
84
|
-
end
|
85
|
-
def test_to_seconds
|
86
|
-
assert_equal(120, ISO8601::Minutes.new(2).to_seconds)
|
87
|
-
assert_equal(-120, ISO8601::Minutes.new(-2).to_seconds)
|
88
|
-
end
|
89
|
-
end
|
90
|
-
class TestSeconds < Test::Unit::TestCase
|
91
|
-
def test_factor
|
92
|
-
assert_equal(1, ISO8601::Seconds.new(2).factor)
|
93
|
-
end
|
94
|
-
def test_to_seconds
|
95
|
-
assert_equal(2, ISO8601::Seconds.new(2).to_seconds)
|
96
|
-
assert_equal(-2, ISO8601::Seconds.new(-2).to_seconds)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require "test/unit"
|
2
|
-
require "iso8601"
|
3
|
-
|
4
|
-
class TestDateTime < Test::Unit::TestCase
|
5
|
-
def test_patterns
|
6
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2") }
|
7
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("201") }
|
8
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010-") }
|
9
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("20-05") }
|
10
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010-0") }
|
11
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010-0-09") }
|
12
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010-1-09") }
|
13
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("20101-09") }
|
14
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("201-0109") }
|
15
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010-05-09T103012+0400") }
|
16
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("20100509T10:30:12+04:00") }
|
17
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010-05-09T10:30:12+0400") }
|
18
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010-05-09T10:3012+0400") }
|
19
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010-05-09T10:3012") }
|
20
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::DateTime.new("2010:05:09T10:30:12+04:00") }
|
21
|
-
|
22
|
-
assert_raise(RangeError) { ISO8601::DateTime.new("2010-01-32") }
|
23
|
-
assert_raise(RangeError) { ISO8601::DateTime.new("2010-02-31") }
|
24
|
-
assert_raise(RangeError) { ISO8601::DateTime.new("2010-13-31") }
|
25
|
-
#assert_raise(RangeError) { ISO8601::DateTime.new("1901-12-13T20:45:52Z") - 1 }
|
26
|
-
#assert_raise(RangeError) { ISO8601::DateTime.new("2038-01-19T03:14:07Z") + 1 }
|
27
|
-
#assert_raise(RangeError) { ISO8601::DateTime.new("2038-01-19T02:14:07+01:00") + 1 }
|
28
|
-
|
29
|
-
assert_nothing_raised() { ISO8601::DateTime.new("20") }
|
30
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010") }
|
31
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05") }
|
32
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09") }
|
33
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09") }
|
34
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09T10") }
|
35
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09T10:30") }
|
36
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09T10:30:12") }
|
37
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09T10:30:12Z") }
|
38
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09T10:30:12+04:00") }
|
39
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09T10:30:12-04:00") }
|
40
|
-
assert_nothing_raised() { ISO8601::DateTime.new("2010-05-09T10:30:12+04") }
|
41
|
-
assert_nothing_raised() { ISO8601::DateTime.new("201005") }
|
42
|
-
assert_nothing_raised() { ISO8601::DateTime.new("20100509") }
|
43
|
-
assert_nothing_raised() { ISO8601::DateTime.new("20100509T103012") }
|
44
|
-
assert_nothing_raised() { ISO8601::DateTime.new("20100509T103012Z") }
|
45
|
-
assert_nothing_raised() { ISO8601::DateTime.new("20100509T103012+0400") }
|
46
|
-
assert_nothing_raised() { ISO8601::DateTime.new("20100509T103012-0400") }
|
47
|
-
assert_nothing_raised() { ISO8601::DateTime.new("20100509T103012+04") }
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_atom_methods
|
51
|
-
assert_equal(20, ISO8601::DateTime.new("2010-05-09").century)
|
52
|
-
assert_equal(2010, ISO8601::DateTime.new("2010-05-09").year)
|
53
|
-
assert_equal(5, ISO8601::DateTime.new("2010-05-09").month)
|
54
|
-
assert_equal(9, ISO8601::DateTime.new("2010-05-09").day)
|
55
|
-
assert_equal(10, ISO8601::DateTime.new("2010-05-09T10:05:01").hour)
|
56
|
-
assert_equal(5, ISO8601::DateTime.new("2010-05-09T10:05:01").minute)
|
57
|
-
assert_equal(1, ISO8601::DateTime.new("2010-05-09T10:05:01").second)
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_to_time
|
61
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010-05-09T10:05:01-01:00").to_time)
|
62
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010-05-09T10:05:01+01:00").to_time)
|
63
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010-05-09T10:05:01Z").to_time)
|
64
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010-05-09T10:05:01").to_time)
|
65
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010-05-09T10:05").to_time)
|
66
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010-05-09T10").to_time)
|
67
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010-05-09").to_time)
|
68
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010-05").to_time)
|
69
|
-
assert_instance_of(Time, ISO8601::DateTime.new("2010").to_time)
|
70
|
-
assert_instance_of(Time, ISO8601::DateTime.new("20").to_time)
|
71
|
-
end
|
72
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
require "test/unit"
|
2
|
-
require "iso8601"
|
3
|
-
|
4
|
-
|
5
|
-
class TestDuration < Test::Unit::TestCase
|
6
|
-
def test_patterns
|
7
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::Duration.new("P") }
|
8
|
-
assert_nothing_raised() { ISO8601::Duration.new("P1Y") }
|
9
|
-
assert_nothing_raised() { ISO8601::Duration.new("P1Y1M") }
|
10
|
-
assert_nothing_raised() { ISO8601::Duration.new("P1Y1M1D") }
|
11
|
-
assert_nothing_raised() { ISO8601::Duration.new("P2W") }
|
12
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::Duration.new("P1Y1M1DT") }
|
13
|
-
assert_nothing_raised() { ISO8601::Duration.new("P1Y1M1DT1H") }
|
14
|
-
assert_nothing_raised() { ISO8601::Duration.new("P1Y1M1DT1H1M") }
|
15
|
-
assert_nothing_raised() { ISO8601::Duration.new("P1Y1M1DT1H1M1S") }
|
16
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::Duration.new("PT") }
|
17
|
-
assert_nothing_raised() { ISO8601::Duration.new("PT1H") }
|
18
|
-
assert_nothing_raised() { ISO8601::Duration.new("PT1H1M") }
|
19
|
-
assert_nothing_raised() { ISO8601::Duration.new("PT1H1S") }
|
20
|
-
assert_nothing_raised() { ISO8601::Duration.new("PT1H1M1S") }
|
21
|
-
assert_nothing_raised() { ISO8601::Duration.new("P1Y2M3DT5H20M30.123S")}
|
22
|
-
assert_nothing_raised() { ISO8601::Duration.new("+PT1H1M1S") }
|
23
|
-
assert_nothing_raised() { ISO8601::Duration.new("-PT1H1M1S") }
|
24
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::Duration.new("~PT1H1M1S") }
|
25
|
-
assert_raise(ISO8601::Errors::UnknownPattern) { ISO8601::Duration.new("T") }
|
26
|
-
end
|
27
|
-
def test_base
|
28
|
-
assert_nothing_raised() { ISO8601::Duration.new("P1Y1M1DT1H1M1S", ISO8601::DateTime.new("2010-01-01")) }
|
29
|
-
assert_raise(TypeError) { ISO8601::Duration.new("P1Y1M1DT1H1M1S", "2010-01-01") }
|
30
|
-
assert_raise(TypeError) { ISO8601::Duration.new("P1Y1M1DT1H1M1S", 2010) }
|
31
|
-
assert_instance_of(ISO8601::DateTime, ISO8601::Duration.new("P1Y1M1DT1H1M1S", ISO8601::DateTime.new("2010-01-01")).base)
|
32
|
-
assert_instance_of(NilClass, ISO8601::Duration.new("P1Y1M1DT1H1M1S").base)
|
33
|
-
assert_instance_of(ISO8601::DateTime, (ISO8601::Duration.new("P1Y1M1DT1H1M1S").base = ISO8601::DateTime.new("2010-01-01")))
|
34
|
-
end
|
35
|
-
def test_addition
|
36
|
-
assert_equal("P1YT2M24S", (ISO8601::Duration.new("P1YT2M12S") + ISO8601::Duration.new("PT12S")).to_s, "d1 + d2")
|
37
|
-
assert_instance_of(ISO8601::Duration, ISO8601::Duration.new("P1YT2M12S") + ISO8601::Duration.new("PT12S"))
|
38
|
-
end
|
39
|
-
def test_substraction
|
40
|
-
assert_equal("P1YT2M", (ISO8601::Duration.new("P1YT2M12S") - ISO8601::Duration.new("PT12S")).to_s, "d1 - d2 > 0")
|
41
|
-
assert_equal("PT0S", (ISO8601::Duration.new("PT12S") - ISO8601::Duration.new("PT12S")).to_s, "d1 - d2 = 0")
|
42
|
-
assert_equal("-P1YT1M", (ISO8601::Duration.new("PT12S") - ISO8601::Duration.new("P1YT1M12S")).to_s, "d1 - d2 < 0")
|
43
|
-
assert_instance_of(ISO8601::Duration, ISO8601::Duration.new("P1YT2M12S") - ISO8601::Duration.new("PT12S"))
|
44
|
-
end
|
45
|
-
def test_abs
|
46
|
-
assert_equal("P1YT2M", ISO8601::Duration.new("-P1YT2M").abs)
|
47
|
-
assert_equal("P1YT1M", (ISO8601::Duration.new("PT12S") - ISO8601::Duration.new("P1YT1M12S")).abs)
|
48
|
-
end
|
49
|
-
def test_date_to_seconds
|
50
|
-
assert_equal(63072000, ISO8601::Duration.new("P2Y").to_seconds, "P[n]Y form")
|
51
|
-
assert_equal(63158400, ISO8601::Duration.new("P2Y", ISO8601::DateTime.new("2000-01-01")).to_seconds, "P[n]Y form in leap year")
|
52
|
-
assert_equal(70956000, ISO8601::Duration.new("P2Y3M").to_seconds, "P[n]Y[n]M form")
|
53
|
-
assert_equal(70934400, ISO8601::Duration.new("P2Y3M", ISO8601::DateTime.new("2000-01-01")).to_seconds, "P[n]Y[n]M form in leap year")
|
54
|
-
assert_equal(71107200, ISO8601::Duration.new("P2Y3M", ISO8601::DateTime.new("2000-06-01")).to_seconds, "P[n]Y[n]M form in leap year")
|
55
|
-
assert_equal(65577600, ISO8601::Duration.new("P1Y13M", ISO8601::DateTime.new("2010-02-01")).to_seconds, "P[n]Y[n]M form with months > 12")
|
56
|
-
assert_equal(ISO8601::Duration.new("P2Y1M", ISO8601::DateTime.new("2010-02-01")).to_seconds, ISO8601::Duration.new("P1Y13M", ISO8601::DateTime.new("2010-02-01")).to_seconds)
|
57
|
-
assert_equal(Time.utc(2001, 4) - Time.utc(2000, 2), ISO8601::Duration.new("P14M", ISO8601::DateTime.new("2000-02-01")).to_seconds)
|
58
|
-
|
59
|
-
assert_equal(64022400, ISO8601::Duration.new("P2Y11D").to_seconds, "P[n]Y[n]D form")
|
60
|
-
assert_equal(71906400, ISO8601::Duration.new("P2Y3M11D").to_seconds, "P[n]Y[n]M[n]D form")
|
61
|
-
assert_equal(7884000, ISO8601::Duration.new("P3M").to_seconds, "P[n]M form")
|
62
|
-
assert_equal(8834400, ISO8601::Duration.new("P3M11D").to_seconds, "P[n]M[n]D form")
|
63
|
-
assert_equal(950400, ISO8601::Duration.new("P11D").to_seconds, "P[n]D form")
|
64
|
-
assert_equal(1209600, ISO8601::Duration.new("P2W").to_seconds, "P[n]W form")
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_time_to_seconds
|
68
|
-
assert_equal(18000, ISO8601::Duration.new("PT5H").to_seconds, "PT[n]H form")
|
69
|
-
assert_equal(26400, ISO8601::Duration.new("PT7H20M").to_seconds, "PT[n]H[n]M form")
|
70
|
-
assert_equal(144034, ISO8601::Duration.new("PT40H34S").to_seconds, "PT[n]H[n]S form")
|
71
|
-
assert_equal(27003, ISO8601::Duration.new("PT7H30M3S").to_seconds, "PT[n]H[n]M[n]S form")
|
72
|
-
assert_equal(2040, ISO8601::Duration.new("PT34M").to_seconds, "PT[n]M form")
|
73
|
-
assert_equal(2050, ISO8601::Duration.new("PT34M10S").to_seconds, "PT[n]M[n]S form")
|
74
|
-
assert_equal(2050.4, ISO8601::Duration.new("PT34M10.4S").to_seconds, "PT[n]M[n.m]S form")
|
75
|
-
assert_equal(10, ISO8601::Duration.new("PT10S").to_seconds, "PT[n]S form")
|
76
|
-
assert_equal(10.5, ISO8601::Duration.new("PT10.5S").to_seconds, "PT[n.m]S form")
|
77
|
-
assert_equal(ISO8601::Duration.new("PT1H15M").to_seconds, ISO8601::Duration.new("PT75M").to_seconds, "PT[n]H[n]M equivalent to PT[n]M")
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_dateTime_to_seconds
|
81
|
-
assert_equal(71965843, ISO8601::Duration.new("P2Y3M11DT16H30M43S").to_seconds, "P[n]Y[n]M[n]DT[n]H[n]M[n]S form")
|
82
|
-
assert_equal(71965800, ISO8601::Duration.new("P2Y3M11DT16H30M").to_seconds, "P[n]Y[n]M[n]DT[n]H[n]M form")
|
83
|
-
assert_equal(71964000, ISO8601::Duration.new("P2Y3M11DT16H").to_seconds, "P[n]Y[n]M[n]DT[n]H form")
|
84
|
-
assert_equal(71964043, ISO8601::Duration.new("P2Y3M11DT16H43S").to_seconds, "P[n]Y[n]M[n]DT[n]H[n]S form")
|
85
|
-
assert_equal(71908243, ISO8601::Duration.new("P2Y3M11DT30M43S").to_seconds, "P[n]Y[n]M[n]DT[n]M[n]S form")
|
86
|
-
assert_equal(71908200, ISO8601::Duration.new("P2Y3M11DT30M").to_seconds, "P[n]Y[n]M[n]DT[n]M form")
|
87
|
-
assert_equal(71906443, ISO8601::Duration.new("P2Y3M11DT43S").to_seconds, "P[n]Y[n]M[n]DT[n]S form")
|
88
|
-
assert_equal(ISO8601::Duration.new("P1DT12H").to_seconds, ISO8601::Duration.new("PT36H").to_seconds, "P[n]DT[n]H equivalent to PT[n]H")
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_seconds_to_iso
|
92
|
-
assert_equal(ISO8601::Duration.new("P1Y2M3DT4H5M6S").to_seconds, ISO8601::Duration.seconds_to_iso(37065906).to_seconds)
|
93
|
-
assert_equal(ISO8601::Duration.new("P1Y2M3DT4H5M6.9S").to_seconds, ISO8601::Duration.seconds_to_iso(37065906.9).to_seconds)
|
94
|
-
end
|
95
|
-
end
|
data/test/test_iso8601.rb
DELETED