Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

minor: fix test and remove println in tests #6935

Merged
merged 1 commit into from
Jan 4, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions arrow-cast/src/cast/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3767,7 +3767,6 @@ mod tests {
Arc::new(StringViewArray::from(vec![Some("1.5"), Some("2.5"), None]));

for array in inputs {
println!("type: {}", array.data_type());
assert!(can_cast_types(array.data_type(), &DataType::Utf8View));
let arr = cast(&array, &DataType::Utf8View).unwrap();
assert_eq!(expected.as_ref(), arr.as_ref());
Expand Down Expand Up @@ -9971,7 +9970,6 @@ mod tests {
fn test_decimal_to_decimal_throw_error_on_precision_overflow_same_scale() {
let array = vec![Some(123456789)];
let array = create_decimal_array(array, 24, 2).unwrap();
println!("{:?}", array);
let input_type = DataType::Decimal128(24, 2);
let output_type = DataType::Decimal128(6, 2);
assert!(can_cast_types(&input_type, &output_type));
Expand All @@ -9988,8 +9986,7 @@ mod tests {
#[test]
fn test_decimal_to_decimal_throw_error_on_precision_overflow_lower_scale() {
let array = vec![Some(123456789)];
let array = create_decimal_array(array, 24, 2).unwrap();
println!("{:?}", array);
let array = create_decimal_array(array, 24, 4).unwrap();
Copy link
Contributor

@alamb alamb Jan 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain what exactly this is fixing about the test? It seems like it changes the size of the input decimal from (24,2) to (24,4).

This seems fine to me, but also not obvious to me why we are changing the test

If the idea is to cover a different code path, perhaps we should leave the existing coverage for (24,2) and add a new test for (24,4) 🤔

Copy link
Contributor Author

@himadripal himadripal Jan 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the review @alamb
Here I'm testing different conversions, In the previous PR #6836 , I added the decimal validation and to test that created 4 tests -

  • test_decimal_to_decimal_throw_error_on_precision_overflow_same_scale - tests (24,2) to (6,2)
  • test_decimal_to_decimal_throw_error_on_precision_overflow_lower_scale - this is the current changes, it was meant to test conversion overflow from (24,4) to (6,2) but input I was creating a input decimal array of (24,2). Hence changed the input decimal array to be of type (24,4)
  • test_decimal_to_decimal_throw_error_on_precision_overflow_greater_scale - tests (24,2) to (6,3).
  • test_decimal_to_decimal_throw_error_on_precision_overflow_diff_type this one between different type Decimal128 to Decimal256.

This PR fixes the second tests input creation, hope this clarifies.

let input_type = DataType::Decimal128(24, 4);
let output_type = DataType::Decimal128(6, 2);
assert!(can_cast_types(&input_type, &output_type));
Expand All @@ -10000,14 +9997,13 @@ mod tests {
};
let result = cast_with_options(&array, &output_type, &options);
assert_eq!(result.unwrap_err().to_string(),
"Invalid argument error: 123456790 is too large to store in a Decimal128 of precision 6. Max is 999999");
"Invalid argument error: 1234568 is too large to store in a Decimal128 of precision 6. Max is 999999");
}

#[test]
fn test_decimal_to_decimal_throw_error_on_precision_overflow_greater_scale() {
let array = vec![Some(123456789)];
let array = create_decimal_array(array, 24, 2).unwrap();
println!("{:?}", array);
let input_type = DataType::Decimal128(24, 2);
let output_type = DataType::Decimal128(6, 3);
assert!(can_cast_types(&input_type, &output_type));
Expand All @@ -10025,7 +10021,6 @@ mod tests {
fn test_decimal_to_decimal_throw_error_on_precision_overflow_diff_type() {
let array = vec![Some(123456789)];
let array = create_decimal_array(array, 24, 2).unwrap();
println!("{:?}", array);
let input_type = DataType::Decimal128(24, 2);
let output_type = DataType::Decimal256(6, 2);
assert!(can_cast_types(&input_type, &output_type));
Expand Down
Loading