| 1400 | |
| 1401 | #[test] |
| 1402 | fn test_interval() { |
| 1403 | let a = IntervalYearMonthArray::from(vec![ |
| 1404 | IntervalYearMonthType::make_value(32, 4), |
| 1405 | IntervalYearMonthType::make_value(32, 4), |
| 1406 | ]); |
| 1407 | let b = IntervalYearMonthArray::from(vec![ |
| 1408 | IntervalYearMonthType::make_value(-4, 6), |
| 1409 | IntervalYearMonthType::make_value(-3, 23), |
| 1410 | ]); |
| 1411 | let result = add(&a, &b).unwrap(); |
| 1412 | assert_eq!( |
| 1413 | result.as_ref(), |
| 1414 | &IntervalYearMonthArray::from(vec![ |
| 1415 | IntervalYearMonthType::make_value(28, 10), |
| 1416 | IntervalYearMonthType::make_value(29, 27) |
| 1417 | ]) |
| 1418 | ); |
| 1419 | let result = sub(&a, &b).unwrap(); |
| 1420 | assert_eq!( |
| 1421 | result.as_ref(), |
| 1422 | &IntervalYearMonthArray::from(vec![ |
| 1423 | IntervalYearMonthType::make_value(36, -2), |
| 1424 | IntervalYearMonthType::make_value(35, -19) |
| 1425 | ]) |
| 1426 | ); |
| 1427 | |
| 1428 | let a = IntervalDayTimeArray::from(vec![ |
| 1429 | IntervalDayTimeType::make_value(32, 4), |
| 1430 | IntervalDayTimeType::make_value(32, 4), |
| 1431 | ]); |
| 1432 | let b = IntervalDayTimeArray::from(vec![ |
| 1433 | IntervalDayTimeType::make_value(-4, 6), |
| 1434 | IntervalDayTimeType::make_value(-3, 23), |
| 1435 | ]); |
| 1436 | let result = add(&a, &b).unwrap(); |
| 1437 | assert_eq!( |
| 1438 | result.as_ref(), |
| 1439 | &IntervalDayTimeArray::from(vec![ |
| 1440 | IntervalDayTimeType::make_value(28, 10), |
| 1441 | IntervalDayTimeType::make_value(29, 27) |
| 1442 | ]) |
| 1443 | ); |
| 1444 | let result = sub(&a, &b).unwrap(); |
| 1445 | assert_eq!( |
| 1446 | result.as_ref(), |
| 1447 | &IntervalDayTimeArray::from(vec![ |
| 1448 | IntervalDayTimeType::make_value(36, -2), |
| 1449 | IntervalDayTimeType::make_value(35, -19) |
| 1450 | ]) |
| 1451 | ); |
| 1452 | let a = IntervalMonthDayNanoArray::from(vec![ |
| 1453 | IntervalMonthDayNanoType::make_value(32, 4, 4000000000000), |
| 1454 | IntervalMonthDayNanoType::make_value(32, 4, 45463000000000000), |
| 1455 | ]); |
| 1456 | let b = IntervalMonthDayNanoArray::from(vec![ |
| 1457 | IntervalMonthDayNanoType::make_value(-4, 6, 46000000000000), |
| 1458 | IntervalMonthDayNanoType::make_value(-3, 23, 3564000000000000), |
| 1459 | ]); |