()
| 2453 | |
| 2454 | #[test] |
| 2455 | fn test_decimal_append_error_value() { |
| 2456 | let mut decimal_builder = Decimal128Builder::with_capacity(10); |
| 2457 | decimal_builder.append_value(123456); |
| 2458 | decimal_builder.append_value(12345); |
| 2459 | let result = decimal_builder.finish().with_precision_and_scale(5, 3); |
| 2460 | assert!(result.is_ok()); |
| 2461 | let arr = result.unwrap(); |
| 2462 | assert_eq!("12.345", arr.value_as_string(1)); |
| 2463 | |
| 2464 | // Validate it explicitly |
| 2465 | let result = arr.validate_decimal_precision(5); |
| 2466 | let error = result.unwrap_err(); |
| 2467 | assert_eq!( |
| 2468 | "Invalid argument error: 123.456 is too large to store in a Decimal128 of precision 5. Max is 99.999", |
| 2469 | error.to_string() |
| 2470 | ); |
| 2471 | |
| 2472 | decimal_builder = Decimal128Builder::new(); |
| 2473 | decimal_builder.append_value(100); |
| 2474 | decimal_builder.append_value(99); |
| 2475 | decimal_builder.append_value(-100); |
| 2476 | decimal_builder.append_value(-99); |
| 2477 | let result = decimal_builder.finish().with_precision_and_scale(2, 1); |
| 2478 | assert!(result.is_ok()); |
| 2479 | let arr = result.unwrap(); |
| 2480 | assert_eq!("9.9", arr.value_as_string(1)); |
| 2481 | assert_eq!("-9.9", arr.value_as_string(3)); |
| 2482 | |
| 2483 | // Validate it explicitly |
| 2484 | let result = arr.validate_decimal_precision(2); |
| 2485 | let error = result.unwrap_err(); |
| 2486 | assert_eq!( |
| 2487 | "Invalid argument error: 10.0 is too large to store in a Decimal128 of precision 2. Max is 9.9", |
| 2488 | error.to_string() |
| 2489 | ); |
| 2490 | } |
| 2491 | |
| 2492 | #[test] |
| 2493 | fn test_decimal_from_iter_values() { |
nothing calls this directly
no test coverage detected