summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authordfhoughton <dfhoughton@gmail.com>2019-01-05 12:35:29 -0500
committerdfhoughton <dfhoughton@gmail.com>2019-01-05 12:35:29 -0500
commit8981b2d10268ac934b1251c6a1c91bf756ba7818 (patch)
tree77c2f37da00a8ba2e1bf450b9d24bf0d384bf7d0 /tests
parent8235e2be69d41b1f477a4adc1ac3fbb2c4a16533 (diff)
downloadtwo-timer-8981b2d10268ac934b1251c6a1c91bf756ba7818.zip
converted from utc to naive; added 'weekend'
Diffstat (limited to 'tests')
-rw-r--r--tests/tests.rs427
1 files changed, 280 insertions, 147 deletions
diff --git a/tests/tests.rs b/tests/tests.rs
index ae607cf..f4460b2 100644
--- a/tests/tests.rs
+++ b/tests/tests.rs
@@ -2,12 +2,13 @@
extern crate two_timer;
use two_timer::{parse, Config};
extern crate chrono;
-use chrono::{Duration, TimeZone, Utc};
+use chrono::naive::NaiveDate;
+use chrono::{Duration, Local, TimeZone, Utc};
#[test]
fn always() {
- let alpha = chrono::MIN_DATE.and_hms_milli(0, 0, 0, 0);
- let omega = chrono::MAX_DATE.and_hms_milli(23, 59, 59, 999);
+ let alpha = chrono::naive::MIN_DATE.and_hms_milli(0, 0, 0, 0);
+ let omega = chrono::naive::MAX_DATE.and_hms_milli(23, 59, 59, 999);
for phrase in [
"always",
"ever",
@@ -26,7 +27,7 @@ fn always() {
#[test]
fn yesterday() {
- let now = Utc::now();
+ let now = Local::now().naive_local();
let (start, end, _) = parse("yesterday", Some(Config::new().now(now))).unwrap();
assert!(start < now);
assert!(end < now);
@@ -39,7 +40,7 @@ fn yesterday() {
#[test]
fn tomorrow() {
- let now = Utc::now();
+ let now = Local::now().naive_local();
let (start, end, _) = parse("tomorrow", Some(Config::new().now(now))).unwrap();
assert!(start > now);
assert!(end > now);
@@ -52,7 +53,7 @@ fn tomorrow() {
#[test]
fn today() {
- let now = Utc::now();
+ let now = Local::now().naive_local();
let (start, end, _) = parse("today", Some(Config::new().now(now))).unwrap();
assert!(start < now);
assert!(end > now);
@@ -66,7 +67,7 @@ fn today() {
#[test]
fn day_5_6_69_at_3_30_pm() {
- let then = Utc.ymd(1969, 5, 6).and_hms(15, 30, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(15, 30, 0);
for phrase in [
"at 3:30 PM on 5-6-69",
"3:30 p.m. on 5-6-69",
@@ -83,7 +84,7 @@ fn day_5_6_69_at_3_30_pm() {
#[test]
fn day_5_6_69_at_3_pm() {
- let then = Utc.ymd(1969, 5, 6).and_hms(15, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(15, 0, 0);
for phrase in [
"at 3 PM on 5-6-69",
"3 p.m. on 5-6-69",
@@ -100,7 +101,7 @@ fn day_5_6_69_at_3_pm() {
#[test]
fn day_5_6_69_at_3_30_00_pm() {
- let then = Utc.ymd(1969, 5, 6).and_hms(15, 30, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(15, 30, 0);
for phrase in [
"at 3:30:00 PM on 5-6-69",
"3:30:00 p.m. on 5-6-69",
@@ -117,7 +118,7 @@ fn day_5_6_69_at_3_30_00_pm() {
#[test]
fn day_5_6_69_at_3_30_01_pm() {
- let then = Utc.ymd(1969, 5, 6).and_hms(15, 30, 1);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(15, 30, 1);
for phrase in [
"at 3:30:01 PM on 5-6-69",
"3:30:01 p.m. on 5-6-69",
@@ -134,7 +135,7 @@ fn day_5_6_69_at_3_30_01_pm() {
#[test]
fn day_5_6_69_at_3_30_01_am() {
- let then = Utc.ymd(1969, 5, 6).and_hms(3, 30, 1);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(3, 30, 1);
for phrase in [
"at 3:30:01 AM on 5-6-69",
"3:30:01 a.m. on 5-6-69",
@@ -151,8 +152,8 @@ fn day_5_6_69_at_3_30_01_am() {
#[test]
fn at_3_pm() {
- let now = Utc.ymd(1969, 5, 6).and_hms(16, 0, 0);
- let then = Utc.ymd(1969, 5, 6).and_hms(15, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(16, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(15, 0, 0);
for phrase in ["3 PM", "3 pm", "15"].iter() {
let (start, end, _) = parse(phrase, Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
@@ -162,8 +163,8 @@ fn at_3_pm() {
#[test]
fn at_3_00_pm() {
- let now = Utc.ymd(1969, 5, 6).and_hms(16, 0, 0);
- let then = Utc.ymd(1969, 5, 6).and_hms(15, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(16, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(15, 0, 0);
for phrase in ["3:00 PM", "3:00 pm", "15:00"].iter() {
let (start, end, _) = parse(phrase, Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
@@ -173,8 +174,8 @@ fn at_3_00_pm() {
#[test]
fn at_3_00_00_pm() {
- let now = Utc.ymd(1969, 5, 6).and_hms(16, 0, 0);
- let then = Utc.ymd(1969, 5, 6).and_hms(15, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(16, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(15, 0, 0);
for phrase in ["3:00:00 PM", "3:00:00 pm", "15:00:00"].iter() {
let (start, end, _) = parse(phrase, Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
@@ -184,8 +185,8 @@ fn at_3_00_00_pm() {
#[test]
fn at_3_pm_yesterday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(14, 0, 0);
- let then = Utc.ymd(1969, 5, 5).and_hms(15, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(14, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 5).and_hms(15, 0, 0);
for phrase in ["3 PM yesterday", "3 pm yesterday", "15 yesterday"].iter() {
let (start, end, _) = parse(phrase, Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
@@ -195,7 +196,7 @@ fn at_3_pm_yesterday() {
#[test]
fn alphabetic_5_6_69() {
- let then = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
for phrase in [
"May 6, 1969",
"May 6, '69",
@@ -238,7 +239,7 @@ fn alphabetic_5_6_69() {
#[test]
fn ymd_5_31_69() {
- let then = Utc.ymd(1969, 5, 31).and_hms(0, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 31).and_hms(0, 0, 0);
for phrase in [
"5-31-69",
"5/31/69",
@@ -331,8 +332,8 @@ fn leap_day() {
#[test]
fn may_1969() {
- let m1 = Utc.ymd(1969, 5, 1).and_hms(0, 0, 0);
- let m2 = Utc.ymd(1969, 6, 1).and_hms(0, 0, 0);
+ let m1 = NaiveDate::from_ymd(1969, 5, 1).and_hms(0, 0, 0);
+ let m2 = NaiveDate::from_ymd(1969, 6, 1).and_hms(0, 0, 0);
for phrase in ["May 1969", "May '69"].iter() {
let (start, end, _) = parse(phrase, None).unwrap();
assert_eq!(m1, start);
@@ -342,9 +343,9 @@ fn may_1969() {
#[test]
fn this_month() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 6, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 6, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("this month", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -352,9 +353,9 @@ fn this_month() {
#[test]
fn next_month() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 6, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 7, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 6, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 7, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("next month", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -362,9 +363,9 @@ fn next_month() {
#[test]
fn last_month() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 4, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("last month", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -372,9 +373,9 @@ fn last_month() {
#[test]
fn this_year() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 1, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1970, 1, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 1, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1970, 1, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("this year", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -382,9 +383,9 @@ fn this_year() {
#[test]
fn next_year() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1970, 1, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1971, 1, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1970, 1, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1971, 1, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("next year", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -392,9 +393,9 @@ fn next_year() {
#[test]
fn last_year() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1968, 1, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 1, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1968, 1, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 1, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("last year", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -402,9 +403,9 @@ fn last_year() {
#[test]
fn this_week() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 5).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 12).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 12).and_hms(0, 0, 0);
let (start, end, _) = parse("this week", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -412,9 +413,9 @@ fn this_week() {
#[test]
fn next_week() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 12).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 19).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 12).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 19).and_hms(0, 0, 0);
let (start, end, _) = parse("next week", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -422,9 +423,9 @@ fn next_week() {
#[test]
fn last_week() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 4, 28).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 28).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
let (start, end, _) = parse("last week", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -432,9 +433,9 @@ fn last_week() {
#[test]
fn this_week_sunday_starts() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 4).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 11).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 4).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 11).and_hms(0, 0, 0);
let (start, end, _) = parse(
"this week",
Some(Config::new().now(now).monday_starts_week(false)),
@@ -446,9 +447,9 @@ fn this_week_sunday_starts() {
#[test]
fn next_week_sunday_starts() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 11).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 18).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 11).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 18).and_hms(0, 0, 0);
let (start, end, _) = parse(
"next week",
Some(Config::new().now(now).monday_starts_week(false)),
@@ -460,9 +461,9 @@ fn next_week_sunday_starts() {
#[test]
fn last_week_sunday_starts() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 4, 27).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 4).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 27).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 4).and_hms(0, 0, 0);
let (start, end, _) = parse(
"last week",
Some(Config::new().now(now).monday_starts_week(false)),
@@ -474,14 +475,14 @@ fn last_week_sunday_starts() {
#[test]
fn this_pay_period() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
// two-week pay period beginning about a year before "now" on a Sunday
let config = Config::new()
- .pay_period_start(Some(Utc.ymd(1968, 5, 5)))
+ .pay_period_start(Some(NaiveDate::from_ymd(1968, 5, 5)))
.pay_period_length(14)
.now(now);
- let d1 = Utc.ymd(1969, 5, 4).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 18).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 4).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 18).and_hms(0, 0, 0);
let (start, end, _) = parse("this pay period", Some(config)).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -489,14 +490,14 @@ fn this_pay_period() {
#[test]
fn next_pay_period() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
// two-week pay period beginning about a year before "now" on a Sunday
let config = Config::new()
- .pay_period_start(Some(Utc.ymd(1968, 5, 5)))
+ .pay_period_start(Some(NaiveDate::from_ymd(1968, 5, 5)))
.pay_period_length(14)
.now(now);
- let d1 = Utc.ymd(1969, 5, 18).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 6, 1).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 18).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 6, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("next pay period", Some(config)).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -504,14 +505,14 @@ fn next_pay_period() {
#[test]
fn last_pay_period() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
// two-week pay period beginning about a year before "now" on a Sunday
let config = Config::new()
- .pay_period_start(Some(Utc.ymd(1968, 5, 5)))
+ .pay_period_start(Some(NaiveDate::from_ymd(1968, 5, 5)))
.pay_period_length(14)
.now(now);
- let d1 = Utc.ymd(1969, 4, 20).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 4).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 20).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 4).and_hms(0, 0, 0);
let (start, end, _) = parse("last pay period", Some(config)).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -519,14 +520,14 @@ fn last_pay_period() {
#[test]
fn this_pay_period_weird() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
// two-week pay period beginning about a year *after* "now" on a Sunday
let config = Config::new()
- .pay_period_start(Some(Utc.ymd(1970, 4, 5)))
+ .pay_period_start(Some(NaiveDate::from_ymd(1970, 4, 5)))
.pay_period_length(14)
.now(now);
- let d1 = Utc.ymd(1969, 5, 4).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 18).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 4).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 18).and_hms(0, 0, 0);
let (start, end, _) = parse("this pay period", Some(config)).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -534,14 +535,14 @@ fn this_pay_period_weird() {
#[test]
fn next_pay_period_weird() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
// two-week pay period beginning about a year *after* "now" on a Sunday
let config = Config::new()
- .pay_period_start(Some(Utc.ymd(1970, 4, 5)))
+ .pay_period_start(Some(NaiveDate::from_ymd(1970, 4, 5)))
.pay_period_length(14)
.now(now);
- let d1 = Utc.ymd(1969, 5, 18).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 6, 1).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 18).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 6, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("next pay period", Some(config)).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -549,14 +550,14 @@ fn next_pay_period_weird() {
#[test]
fn last_pay_period_weird() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
// two-week pay period beginning about a year *after* "now" on a Sunday
let config = Config::new()
- .pay_period_start(Some(Utc.ymd(1970, 4, 5)))
+ .pay_period_start(Some(NaiveDate::from_ymd(1970, 4, 5)))
.pay_period_length(14)
.now(now);
- let d1 = Utc.ymd(1969, 4, 20).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 4).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 20).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 4).and_hms(0, 0, 0);
let (start, end, _) = parse("last pay period", Some(config)).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -564,9 +565,9 @@ fn last_pay_period_weird() {
#[test]
fn this_april() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 4, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("this april", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -574,9 +575,9 @@ fn this_april() {
#[test]
fn next_april() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1970, 4, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1970, 5, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1970, 4, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1970, 5, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("next april", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -584,9 +585,9 @@ fn next_april() {
#[test]
fn last_april() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1968, 4, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1968, 5, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1968, 4, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1968, 5, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("last april", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -594,9 +595,9 @@ fn last_april() {
#[test]
fn this_friday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 9).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 9).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
let (start, end, _) = parse("this friday", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -604,9 +605,9 @@ fn this_friday() {
#[test]
fn next_friday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 16).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 17).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 16).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 17).and_hms(0, 0, 0);
let (start, end, _) = parse("next friday", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -614,9 +615,9 @@ fn next_friday() {
#[test]
fn last_friday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 2).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 3).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 2).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 3).and_hms(0, 0, 0);
let (start, end, _) = parse("last friday", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -624,9 +625,9 @@ fn last_friday() {
#[test]
fn this_monday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 5).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
let (start, end, _) = parse("this monday", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -634,9 +635,9 @@ fn this_monday() {
#[test]
fn next_monday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 12).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 13).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 12).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 13).and_hms(0, 0, 0);
let (start, end, _) = parse("next monday", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -644,9 +645,9 @@ fn next_monday() {
#[test]
fn last_monday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 4, 28).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 4, 29).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 28).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 4, 29).and_hms(0, 0, 0);
let (start, end, _) = parse("last monday", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -654,7 +655,7 @@ fn last_monday() {
#[test]
fn dawn_of_time() {
- let then = chrono::MIN_DATE.and_hms_milli(0, 0, 0, 0);
+ let then = chrono::naive::MIN_DATE.and_hms_milli(0, 0, 0, 0);
for phrase in [
"the beginning",
"the beginning of time",
@@ -676,7 +677,7 @@ fn dawn_of_time() {
#[test]
fn the_crack_of_doom() {
- let then = chrono::MAX_DATE.and_hms_milli(23, 59, 59, 999);
+ let then = chrono::naive::MAX_DATE.and_hms_milli(23, 59, 59, 999);
for phrase in [
"the end",
"the end of time",
@@ -706,8 +707,8 @@ fn the_crack_of_doom() {
#[test]
fn friday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let then = Utc.ymd(1969, 5, 2).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 2).and_hms(0, 0, 0);
let (start, end, _) = parse("Friday", Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
assert_eq!(then + Duration::days(1), end);
@@ -715,8 +716,8 @@ fn friday() {
#[test]
fn tuesday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let then = Utc.ymd(1969, 4, 29).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 4, 29).and_hms(0, 0, 0);
let (start, end, _) = parse("Tuesday", Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
assert_eq!(then + Duration::days(1), end);
@@ -724,8 +725,8 @@ fn tuesday() {
#[test]
fn monday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let then = Utc.ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
let (start, end, _) = parse("Monday", Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
assert_eq!(then + Duration::days(1), end);
@@ -733,8 +734,8 @@ fn monday() {
#[test]
fn friday_at_3_pm() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let then = Utc.ymd(1969, 5, 2).and_hms(15, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 2).and_hms(15, 0, 0);
let (start, end, _) = parse("Friday at 3 pm", Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
assert_eq!(then + Duration::hours(1), end);
@@ -742,8 +743,8 @@ fn friday_at_3_pm() {
#[test]
fn tuesday_at_3_pm() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let then = Utc.ymd(1969, 4, 29).and_hms(15, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 4, 29).and_hms(15, 0, 0);
let (start, end, _) = parse("Tuesday at 3 pm", Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
assert_eq!(then + Duration::hours(1), end);
@@ -751,8 +752,8 @@ fn tuesday_at_3_pm() {
#[test]
fn monday_at_3_pm() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let then = Utc.ymd(1969, 5, 5).and_hms(15, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let then = NaiveDate::from_ymd(1969, 5, 5).and_hms(15, 0, 0);
let (start, end, _) = parse("Monday at 3 pm", Some(Config::new().now(now))).unwrap();
assert_eq!(then, start);
assert_eq!(then + Duration::hours(1), end);
@@ -760,9 +761,9 @@ fn monday_at_3_pm() {
#[test]
fn just_may() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 6, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 6, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("May", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -770,9 +771,9 @@ fn just_may() {
#[test]
fn just_april() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 4, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("April", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -780,9 +781,9 @@ fn just_april() {
#[test]
fn just_june() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1968, 6, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1968, 7, 1).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1968, 6, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1968, 7, 1).and_hms(0, 0, 0);
let (start, end, _) = parse("June", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -790,9 +791,9 @@ fn just_june() {
#[test]
fn monday_through_friday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 5, 5).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
let (start, end, _) = parse("Monday through Friday", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -800,9 +801,9 @@ fn monday_through_friday() {
#[test]
fn tuesday_through_friday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 4, 29).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 3).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 29).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 3).and_hms(0, 0, 0);
let (start, end, _) = parse("Tuesday through Friday", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -810,9 +811,9 @@ fn tuesday_through_friday() {
#[test]
fn tuesday_through_3_pm_on_friday() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 4, 29).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 2).and_hms(15, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 4, 29).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 2).and_hms(15, 0, 0);
let (start, end, _) = parse(
"Tuesday through 3 PM on Friday",
Some(Config::new().now(now)),
@@ -824,9 +825,9 @@ fn tuesday_through_3_pm_on_friday() {
#[test]
fn this_year_through_today() {
- let now = Utc.ymd(1969, 5, 6).and_hms(0, 0, 0);
- let d1 = Utc.ymd(1969, 1, 1).and_hms(0, 0, 0);
- let d2 = Utc.ymd(1969, 5, 7).and_hms(0, 0, 0);
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 1, 1).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 7).and_hms(0, 0, 0);
let (start, end, _) = parse("this year through today", Some(Config::new().now(now))).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
@@ -834,7 +835,7 @@ fn this_year_through_today() {
#[test]
fn april_3_25_bc() {
- let d1 = Utc.ymd(-24, 4, 3).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(-24, 4, 3).and_hms(0, 0, 0);
let d2 = d1 + Duration::days(1);
let (start, end, _) = parse("April 3, 25 BC", None).unwrap();
assert_eq!(d1, start);
@@ -843,9 +844,141 @@ fn april_3_25_bc() {
#[test]
fn april_3_25_ad() {
- let d1 = Utc.ymd(25, 4, 3).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(25, 4, 3).and_hms(0, 0, 0);
let d2 = d1 + Duration::days(1);
let (start, end, _) = parse("April 3, 25 AD", None).unwrap();
assert_eq!(d1, start);
assert_eq!(d2, end);
}
+
+#[test]
+fn this_weekend() {
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 12).and_hms(0, 0, 0);
+ let (start, end, _) = parse("this weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn last_weekend() {
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 3).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let (start, end, _) = parse("last weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn next_weekend() {
+ let now = NaiveDate::from_ymd(1969, 5, 6).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 17).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 19).and_hms(0, 0, 0);
+ let (start, end, _) = parse("next weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn this_weekend_on_saturday() {
+ let now = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 12).and_hms(0, 0, 0);
+ let (start, end, _) = parse("this weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn last_weekend_on_saturday() {
+ let now = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 3).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let (start, end, _) = parse("last weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn next_weekend_on_saturday() {
+ let now = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 17).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 19).and_hms(0, 0, 0);
+ let (start, end, _) = parse("next weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn this_weekend_on_sunday() {
+ let now = NaiveDate::from_ymd(1969, 5, 11).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 12).and_hms(0, 0, 0);
+ let (start, end, _) = parse("this weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn last_weekend_on_sunday() {
+ let now = NaiveDate::from_ymd(1969, 5, 11).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 3).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let (start, end, _) = parse("last weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn next_weekend_on_sunday() {
+ let now = NaiveDate::from_ymd(1969, 5, 11).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 17).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 19).and_hms(0, 0, 0);
+ let (start, end, _) = parse("next weekend", Some(Config::new().now(now))).unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn this_weekend_on_sunday_when_sunday_starts_week() {
+ let now = NaiveDate::from_ymd(1969, 5, 11).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 10).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 12).and_hms(0, 0, 0);
+ let (start, end, _) = parse(
+ "this weekend",
+ Some(Config::new().now(now).monday_starts_week(false)),
+ )
+ .unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn last_weekend_on_sunday_when_sunday_starts_week() {
+ let now = NaiveDate::from_ymd(1969, 5, 11).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 3).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 5).and_hms(0, 0, 0);
+ let (start, end, _) = parse(
+ "last weekend",
+ Some(Config::new().now(now).monday_starts_week(false)),
+ )
+ .unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}
+
+#[test]
+fn next_weekend_on_sunday_when_sunday_starts_week() {
+ let now = NaiveDate::from_ymd(1969, 5, 11).and_hms(0, 0, 0);
+ let d1 = NaiveDate::from_ymd(1969, 5, 17).and_hms(0, 0, 0);
+ let d2 = NaiveDate::from_ymd(1969, 5, 19).and_hms(0, 0, 0);
+ let (start, end, _) = parse(
+ "next weekend",
+ Some(Config::new().now(now).monday_starts_week(false)),
+ )
+ .unwrap();
+ assert_eq!(d1, start);
+ assert_eq!(d2, end);
+}