@@ -153,6 +153,32 @@ mod tests {
153153 assert_eq!( isize :: MIN . checked_div( -1 ) , None ) ;
154154 }
155155
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+
156182 #[ test]
157183 fn test_from_str( ) {
158184 fn from_str<T : :: std:: str :: FromStr >( t: & str ) -> Option <T > {
0 commit comments