Skip to content

Commit d04cc63

Browse files
pepijnvetobixdev
authored andcommitted
Add simple unit test for merge in case expression (apache#18369)
## Which issue does this PR close? - None, followup for apache#18152 ## Rationale for this change Add a unit test testing (and demonstrating) the merge function. ## What changes are included in this PR? Adds an additional test case ## Are these changes tested? Who tests the tests? ## Are there any user-facing changes? No
1 parent 4929316 commit d04cc63

File tree

1 file changed

+31
-0
lines changed
  • datafusion/physical-expr/src/expressions

1 file changed

+31
-0
lines changed

datafusion/physical-expr/src/expressions/case.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1954,4 +1954,35 @@ mod tests {
19541954

19551955
Ok(())
19561956
}
1957+
1958+
#[test]
1959+
fn test_merge() {
1960+
let a1 = StringArray::from(vec![Some("A")]).to_data();
1961+
let a2 = StringArray::from(vec![Some("B")]).to_data();
1962+
let a3 = StringArray::from(vec![Some("C"), Some("D")]).to_data();
1963+
1964+
let indices = vec![
1965+
PartialResultIndex::none(),
1966+
PartialResultIndex::try_new(1).unwrap(),
1967+
PartialResultIndex::try_new(0).unwrap(),
1968+
PartialResultIndex::none(),
1969+
PartialResultIndex::try_new(2).unwrap(),
1970+
PartialResultIndex::try_new(2).unwrap(),
1971+
];
1972+
1973+
let merged = merge(&vec![a1, a2, a3], &indices).unwrap();
1974+
let merged = merged.as_string::<i32>();
1975+
1976+
assert_eq!(merged.len(), indices.len());
1977+
assert!(!merged.is_valid(0));
1978+
assert!(merged.is_valid(1));
1979+
assert_eq!(merged.value(1), "B");
1980+
assert!(merged.is_valid(2));
1981+
assert_eq!(merged.value(2), "A");
1982+
assert!(!merged.is_valid(3));
1983+
assert!(merged.is_valid(4));
1984+
assert_eq!(merged.value(4), "C");
1985+
assert!(merged.is_valid(5));
1986+
assert_eq!(merged.value(5), "D");
1987+
}
19571988
}

0 commit comments

Comments
 (0)