| 3379 | |
| 3380 | #[test] |
| 3381 | fn test_sub() -> Result<()> { |
| 3382 | let cases = vec![ |
| 3383 | ( |
| 3384 | Interval::make(Some(i32::MAX), Some(i32::MAX))?, |
| 3385 | Interval::make(Some(11_i32), Some(11_i32))?, |
| 3386 | Interval::make(Some(i32::MAX - 11), Some(i32::MAX - 11))?, |
| 3387 | ), |
| 3388 | ( |
| 3389 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3390 | Interval::make(None, Some(200_i64))?, |
| 3391 | Interval::make(Some(-100_i64), None)?, |
| 3392 | ), |
| 3393 | ( |
| 3394 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3395 | Interval::make(Some(200_i64), None)?, |
| 3396 | Interval::make(None, Some(0_i64))?, |
| 3397 | ), |
| 3398 | ( |
| 3399 | Interval::make(None, Some(200_i64))?, |
| 3400 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3401 | Interval::make(None, Some(100_i64))?, |
| 3402 | ), |
| 3403 | ( |
| 3404 | Interval::make(Some(200_i64), None)?, |
| 3405 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3406 | Interval::make(Some(0_i64), None)?, |
| 3407 | ), |
| 3408 | ( |
| 3409 | Interval::make(Some(100_i64), Some(200_i64))?, |
| 3410 | Interval::make(Some(-300_i64), Some(150_i64))?, |
| 3411 | Interval::make(Some(-50_i64), Some(500_i64))?, |
| 3412 | ), |
| 3413 | ( |
| 3414 | Interval::make(Some(i64::MIN), Some(i64::MIN))?, |
| 3415 | Interval::make(Some(-10_i64), Some(-10_i64))?, |
| 3416 | Interval::make(Some(i64::MIN + 10), Some(i64::MIN + 10))?, |
| 3417 | ), |
| 3418 | ( |
| 3419 | Interval::make(Some(1), Some(i64::MAX))?, |
| 3420 | Interval::make(Some(i64::MAX), Some(i64::MAX))?, |
| 3421 | Interval::make(Some(1 - i64::MAX), Some(0))?, |
| 3422 | ), |
| 3423 | ( |
| 3424 | Interval::make(Some(i64::MIN), Some(i64::MIN))?, |
| 3425 | Interval::make(Some(i64::MAX), Some(i64::MAX))?, |
| 3426 | Interval::make(None, Some(i64::MIN))?, |
| 3427 | ), |
| 3428 | ( |
| 3429 | Interval::make(Some(2_u32), Some(10_u32))?, |
| 3430 | Interval::make(Some(4_u32), Some(6_u32))?, |
| 3431 | Interval::make(None, Some(6_u32))?, |
| 3432 | ), |
| 3433 | ( |
| 3434 | Interval::make(Some(2_u32), Some(10_u32))?, |
| 3435 | Interval::make(Some(20_u32), Some(30_u32))?, |
| 3436 | Interval::make(None, Some(0_u32))?, |
| 3437 | ), |
| 3438 | ( |