kosiew commented on issue #15631: URL: https://github.com/apache/datafusion/issues/15631#issuecomment-2798494451
hi @Dandandan I am getting failed tests with ```rust #[test] fn test_all_one() -> Result<()> { // Helper function to run tests and report failures let run_test = |array: &BooleanArray, name: &str, expected: bool| -> Result<()> { let result = all_one(array); if result != expected { println!( "Test case '{}' failed: expected {}, got {}", name, expected, result ); println!("Array contents: {:?}", array); } assert_eq!(result, expected, "all_one failed for test case '{}'", name); Ok(()) }; // Basic cases - uniform arrays let all_one_array = BooleanArray::from(vec![true, true, true, true]); run_test(&all_one_array, "all true array", true)?; let all_zero_array = BooleanArray::from(vec![false, false, false, false]); run_test(&all_zero_array, "all false array", false)?; // Mixed values let mixed_array = BooleanArray::from(vec![true, true, false, true]); run_test(&mixed_array, "mixed array with one false", false)?; // Edge cases let empty_array = BooleanArray::from(vec![] as Vec<bool>); run_test(&empty_array, "empty array", true)?; let single_true = BooleanArray::from(vec![true]); run_test(&single_true, "single true", true)?; let single_false = BooleanArray::from(vec![false]); run_test(&single_false, "single false", false)?; // Arrays with nulls let array_with_nulls: BooleanArray = vec![Some(true), None, Some(true)].into_iter().collect(); run_test(&array_with_nulls, "nulls with true", true)?; let nulls_with_false: BooleanArray = vec![Some(true), Some(false), None].into_iter().collect(); run_test(&nulls_with_false, "nulls with false", false)?; // Large arrays let large_all_one = BooleanArray::from(vec![true; 128]); run_test(&large_all_one, "large all true (128)", true)?; // Test with a single false at different positions let mut values = vec![true; 128]; values[63] = false; // Last bit in first chunk let large_with_boundary_false = BooleanArray::from(values); run_test( &large_with_boundary_false, "large with false at bit 63", false, )?; let mut values = vec![true; 128]; values[64] = false; // First bit in second chunk let large_with_second_chunk_false = BooleanArray::from(values); run_test( &large_with_second_chunk_false, "large with false at bit 64", false, )?; // Specific sizes that might trigger edge cases let exact_chunk_size = BooleanArray::from(vec![true; 64]); run_test(&exact_chunk_size, "exact chunk size (64)", true)?; let just_under_chunk = BooleanArray::from(vec![true; 63]); run_test(&just_under_chunk, "just under chunk size (63)", true)?; let just_over_chunk = BooleanArray::from(vec![true; 65]); run_test(&just_over_chunk, "just over chunk size (65)", true)?; Ok(()) } #[test] fn test_all_zero() -> Result<()> { // Helper function to run tests and report failures let run_test = |array: &BooleanArray, name: &str, expected: bool| -> Result<()> { let result = all_zero(array); if result != expected { println!( "Test case '{}' failed: expected {}, got {}", name, expected, result ); println!("Array contents: {:?}", array); } assert_eq!(result, expected, "all_zero failed for test case '{}'", name); Ok(()) }; // Basic cases - uniform arrays let all_zero_array = BooleanArray::from(vec![false, false, false, false]); run_test(&all_zero_array, "all false array", true)?; let all_one_array = BooleanArray::from(vec![true, true, true, true]); run_test(&all_one_array, "all true array", false)?; // Mixed values let mixed_array = BooleanArray::from(vec![false, false, true, false]); run_test(&mixed_array, "mixed array with one true", false)?; // Edge cases let empty_array = BooleanArray::from(vec![] as Vec<bool>); run_test(&empty_array, "empty array", true)?; let single_false = BooleanArray::from(vec![false]); run_test(&single_false, "single false", true)?; let single_true = BooleanArray::from(vec![true]); run_test(&single_true, "single true", false)?; // Arrays with nulls let array_with_nulls: BooleanArray = vec![Some(false), None, Some(false)].into_iter().collect(); run_test(&array_with_nulls, "nulls with false", true)?; let nulls_with_true: BooleanArray = vec![Some(false), Some(true), None].into_iter().collect(); run_test(&nulls_with_true, "nulls with true", false)?; // Large arrays let large_all_zero = BooleanArray::from(vec![false; 128]); run_test(&large_all_zero, "large all false (128)", true)?; // Test with a single true at different positions let mut values = vec![false; 128]; values[63] = true; // Last bit in first chunk let large_with_boundary_true = BooleanArray::from(values); run_test( &large_with_boundary_true, "large with true at bit 63", false, )?; let mut values = vec![false; 128]; values[64] = true; // First bit in second chunk let large_with_second_chunk_true = BooleanArray::from(values); run_test( &large_with_second_chunk_true, "large with true at bit 64", false, )?; // Specific sizes that might trigger edge cases let exact_chunk_size = BooleanArray::from(vec![false; 64]); run_test(&exact_chunk_size, "exact chunk size (64)", true)?; let just_under_chunk = BooleanArray::from(vec![false; 63]); run_test(&just_under_chunk, "just under chunk size (63)", true)?; let just_over_chunk = BooleanArray::from(vec![false; 65]); run_test(&just_over_chunk, "just over chunk size (65)", true)?; Ok(()) } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org For additional commands, e-mail: github-h...@datafusion.apache.org