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

Reply via email to