@@ -153,6 +153,32 @@ mod tests {
153
153
assert_eq!( isize :: MIN . checked_div( -1 ) , None ) ;
154
154
}
155
155
156
+ #[ test]
157
+ fn test_saturating_abs( ) {
158
+ assert_eq!( ( 0 as $T) . saturating_abs( ) , 0 ) ;
159
+ assert_eq!( ( 123 as $T) . saturating_abs( ) , 123 ) ;
160
+ assert_eq!( ( -123 as $T) . saturating_abs( ) , 123 ) ;
161
+ assert_eq!( ( MAX - 2 ) . saturating_abs( ) , MAX - 2 ) ;
162
+ assert_eq!( ( MAX - 1 ) . saturating_abs( ) , MAX - 1 ) ;
163
+ assert_eq!( MAX . saturating_abs( ) , MAX ) ;
164
+ assert_eq!( ( MIN + 2 ) . saturating_abs( ) , MAX - 1 ) ;
165
+ assert_eq!( ( MIN + 1 ) . saturating_abs( ) , MAX ) ;
166
+ assert_eq!( MIN . saturating_abs( ) , MAX ) ;
167
+ }
168
+
169
+ #[ test]
170
+ fn test_saturating_neg( ) {
171
+ assert_eq!( ( 0 as $T) . saturating_neg( ) , 0 ) ;
172
+ assert_eq!( ( 123 as $T) . saturating_neg( ) , -123 ) ;
173
+ assert_eq!( ( -123 as $T) . saturating_neg( ) , 123 ) ;
174
+ assert_eq!( ( MAX - 2 ) . saturating_neg( ) , MIN + 3 ) ;
175
+ assert_eq!( ( MAX - 1 ) . saturating_neg( ) , MIN + 2 ) ;
176
+ assert_eq!( MAX . saturating_neg( ) , MIN + 1 ) ;
177
+ assert_eq!( ( MIN + 2 ) . saturating_neg( ) , MAX - 1 ) ;
178
+ assert_eq!( ( MIN + 1 ) . saturating_neg( ) , MAX ) ;
179
+ assert_eq!( MIN . saturating_neg( ) , MAX ) ;
180
+ }
181
+
156
182
#[ test]
157
183
fn test_from_str( ) {
158
184
fn from_str<T : :: std:: str :: FromStr >( t: & str ) -> Option <T > {
0 commit comments