File: date_to_yd.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 (42 lines) | stat: -rw-r--r-- 1,648 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
extern crate datetime;
use datetime::{LocalDate, Month};
use datetime::DatePiece;


#[test]
fn start_of_year_day() {
    let date = LocalDate::ymd(2015, Month::January, 1).unwrap();
    assert_eq!(date.yearday(), 1);
}


#[test]
fn end_of_year_day() {
    let date = LocalDate::ymd(2015, Month::December, 31).unwrap();
    assert_eq!(date.yearday(), 365);
}


#[test]
fn end_of_leap_year_day() {
    let date = LocalDate::ymd(2016, Month::December, 31).unwrap();
    assert_eq!(date.yearday(), 366);
}


#[test]
fn yearday() {
    for year in 1..2058 {
        assert_eq!( LocalDate::ymd(year, Month::from_one(01).unwrap(), 31).unwrap().yearday() + 1,
                    LocalDate::ymd(year, Month::from_one(02).unwrap(), 01).unwrap().yearday());
        assert_eq!( LocalDate::ymd(year, Month::from_one(03).unwrap(), 31).unwrap().yearday() + 1,
                    LocalDate::ymd(year, Month::from_one(04).unwrap(), 01).unwrap().yearday());
        assert_eq!( LocalDate::ymd(year, Month::from_one(04).unwrap(), 30).unwrap().yearday() + 1,
                    LocalDate::ymd(year, Month::from_one(05).unwrap(), 01).unwrap().yearday());
        assert!(    LocalDate::ymd(year, Month::from_one(12).unwrap(), 31).unwrap().yearday() > 0);
    }
    assert_eq!( LocalDate::ymd(1600, Month::from_one(02).unwrap(), 29).unwrap().yearday() + 1, // leap year
                LocalDate::ymd(1600, Month::from_one(03).unwrap(), 01).unwrap().yearday());
    assert_eq!( LocalDate::ymd(1601, Month::from_one(02).unwrap(), 28).unwrap().yearday() + 1, // no leap year
                LocalDate::ymd(1601, Month::from_one(03).unwrap(), 01).unwrap().yearday());
}