Skip to content

Commit b7e27a4

Browse files
Tests for from_nanos_u128 method
1 parent 7f6707b commit b7e27a4

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

library/coretests/tests/time.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@ fn from_weeks_overflow() {
4545
let _ = Duration::from_weeks(overflow);
4646
}
4747

48+
#[test]
49+
#[should_panic]
50+
fn from_nanos_u128_overflow() {
51+
let overflow = (u64::MAX * NANOS_PER_SEC) + (NANOS_PER_SEC - 1) + 1 ;
52+
let _ = Duration::from_nanos_u128(overflow);
53+
}
54+
4855
#[test]
4956
fn constructors() {
5057
assert_eq!(Duration::from_weeks(1), Duration::from_secs(7 * 24 * 60 * 60));
@@ -72,6 +79,8 @@ fn secs() {
7279
assert_eq!(Duration::from_micros(1_000_001).as_secs(), 1);
7380
assert_eq!(Duration::from_nanos(999_999_999).as_secs(), 0);
7481
assert_eq!(Duration::from_nanos(1_000_000_001).as_secs(), 1);
82+
assert_eq!(Duration::from_nanos_u128(999_999_999).as_secs(),0);
83+
assert_eq!(Duration::from_nanos_u128(1_000_000_001).as_secs(),1);
7584
}
7685

7786
#[test]
@@ -86,6 +95,8 @@ fn millis() {
8695
assert_eq!(Duration::from_micros(1_001_000).subsec_millis(), 1);
8796
assert_eq!(Duration::from_nanos(999_999_999).subsec_millis(), 999);
8897
assert_eq!(Duration::from_nanos(1_001_000_000).subsec_millis(), 1);
98+
assert_eq!(Duration::from_nanos_u128(999_999_999).subsec_millis(),999);
99+
assert_eq!(Duration::from_nanos_u128(1_001_000_001).subsec_millis(),1);
89100
}
90101

91102
#[test]
@@ -100,6 +111,9 @@ fn micros() {
100111
assert_eq!(Duration::from_micros(1_000_001).subsec_micros(), 1);
101112
assert_eq!(Duration::from_nanos(999_999_999).subsec_micros(), 999_999);
102113
assert_eq!(Duration::from_nanos(1_000_001_000).subsec_micros(), 1);
114+
assert_eq!(Duration::from_nanos_u128(999_999_999).subsec_micros(),999_999);
115+
assert_eq!(Duration::from_nanos_u128(1_000_001_000).subsec_micros(),1);
116+
103117
}
104118

105119
#[test]
@@ -114,6 +128,8 @@ fn nanos() {
114128
assert_eq!(Duration::from_micros(1_000_001).subsec_nanos(), 1000);
115129
assert_eq!(Duration::from_nanos(999_999_999).subsec_nanos(), 999_999_999);
116130
assert_eq!(Duration::from_nanos(1_000_000_001).subsec_nanos(), 1);
131+
assert_eq!(Duration::from_nanos_u128(999_999_999).subsec_nanos(),999_999_999);
132+
assert_eq!(Duration::from_nanos_u128(1_000_000_001).subsec_nanos(),1);
117133
}
118134

119135
#[test]

0 commit comments

Comments
 (0)