| 3291 | |
| 3292 | #[test] |
| 3293 | fn test_add() -> Result<()> { |
| 3294 | let cases = vec![ |
| 3295 | ( |
| 3296 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3297 | Interval::make(None, Some(200_i64))?, |
| 3298 | Interval::make(None, Some(400_i64))?, |
| 3299 | ), |
| 3300 | ( |
| 3301 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3302 | Interval::make(Some(200_i64), None)?, |
| 3303 | Interval::make(Some(300_i64), None)?, |
| 3304 | ), |
| 3305 | ( |
| 3306 | Interval::make(None, Some(200_i64))?, |
| 3307 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3308 | Interval::make(None, Some(400_i64))?, |
| 3309 | ), |
| 3310 | ( |
| 3311 | Interval::make(Some(200_i64), None)?, |
| 3312 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3313 | Interval::make(Some(300_i64), None)?, |
| 3314 | ), |
| 3315 | ( |
| 3316 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3317 | Interval::make(Some(-300_i64), Some(150_i64))?, |
| 3318 | Interval::make(Some(-200_i64), Some(350_i64))?, |
| 3319 | ), |
| 3320 | ( |
| 3321 | Interval::make(Some(f32::MAX), Some(f32::MAX))?, |
| 3322 | Interval::make(Some(11_f32), Some(11_f32))?, |
| 3323 | Interval::make(Some(f32::MAX), None)?, |
| 3324 | ), |
| 3325 | ( |
| 3326 | Interval::make(Some(f32::MIN), Some(f32::MIN))?, |
| 3327 | Interval::make(Some(-10_f32), Some(10_f32))?, |
| 3328 | // Since rounding mode is up, the result would be much greater than f32::MIN |
| 3329 | // (f32::MIN = -3.4_028_235e38, the result is -3.4_028_233e38) |
| 3330 | Interval::make( |
| 3331 | None, |
| 3332 | Some(-340282330000000000000000000000000000000.0_f32), |
| 3333 | )?, |
| 3334 | ), |
| 3335 | ( |
| 3336 | Interval::make(Some(f32::MIN), Some(f32::MIN))?, |
| 3337 | Interval::make(Some(-10_f32), Some(-10_f32))?, |
| 3338 | Interval::make(None, Some(f32::MIN))?, |
| 3339 | ), |
| 3340 | ( |
| 3341 | Interval::make(Some(1.0), Some(f32::MAX))?, |
| 3342 | Interval::make(Some(f32::MAX), Some(f32::MAX))?, |
| 3343 | Interval::make(Some(f32::MAX), None)?, |
| 3344 | ), |
| 3345 | ( |
| 3346 | Interval::make(Some(f32::MIN), Some(f32::MIN))?, |
| 3347 | Interval::make(Some(f32::MAX), Some(f32::MAX))?, |
| 3348 | Interval::make(Some(-0.0_f32), Some(0.0_f32))?, |
| 3349 | ), |
| 3350 | ( |