File: iso_formats.rs

package info (click to toggle)
rust-datetime 0.5.2-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 728 kB
  • sloc: ruby: 18; makefile: 6
file content (98 lines) | stat: -rw-r--r-- 2,588 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
extern crate datetime;
pub use datetime::ISO;
pub use std::string::ToString;

mod datetimes {
    use super::*;
    use datetime::{LocalDate, LocalTime, LocalDateTime, Month};

    #[test]
    fn recently() {
        let date = LocalDate::ymd(1600, Month::February, 28).unwrap();
        let debugged = date.iso().to_string();

        assert_eq!(debugged, "1600-02-28");
    }

    #[test]
    fn just_then() {
        let date = LocalDate::ymd(-753, Month::December, 1).unwrap();
        let debugged = date.iso().to_string();

        assert_eq!(debugged, "-0753-12-01");
    }

    #[test]
    fn far_far_future() {
        let date = LocalDate::ymd(10601, Month::January, 31).unwrap();
        let debugged = date.iso().to_string();

        assert_eq!(debugged, "+10601-01-31");
    }

    #[test]
    fn midday() {
        let time = LocalTime::hms(12, 0, 0).unwrap();
        let debugged = time.iso().to_string();

        assert_eq!(debugged, "12:00:00.000");
    }

    #[test]
    fn ascending() {
        let then = LocalDateTime::new(
                    LocalDate::ymd(2009, Month::February, 13).unwrap(),
                    LocalTime::hms(23, 31, 30).unwrap());

        let debugged = then.iso().to_string();

        assert_eq!(debugged, "2009-02-13T23:31:30.000");
    }
}

mod offsets {
    use super::*;
    use datetime::Offset;

    #[test]
    fn zulu() {
        let offset = Offset::utc();
        let debugged = offset.iso().to_string();
        assert_eq!(debugged, "Z");
    }

    #[test]
    fn hours() {
        let offset = Offset::of_hours_and_minutes(1, 0).unwrap();
        let debugged = offset.iso().to_string();
        assert_eq!(debugged, "+01");
    }

    #[test]
    fn hours_minutes() {
        let offset = Offset::of_hours_and_minutes(1, 30).unwrap();
        let debugged = offset.iso().to_string();
        assert_eq!(debugged, "+01:30");
    }

    #[test]
    fn dublin_mean_time() {
        let offset = Offset::of_seconds(-25 * 60 - 21).unwrap();
        let debugged = offset.iso().to_string();
        assert_eq!(debugged, "-00:25:21");
    }

    #[test]
    fn offset_date_time() {
        use datetime::{LocalDate, LocalTime, LocalDateTime, Month};

        let offset = Offset::of_seconds(25 * 60 + 21).unwrap();

        let then = LocalDateTime::new(
                    LocalDate::ymd(2009, Month::February, 13).unwrap(),
                    LocalTime::hms(23, 31, 30).unwrap());

        let debugged = offset.transform_date(then).iso().to_string();
        assert_eq!(debugged, "2009-02-13T23:31:30.000+00:25:21");
    }
}