|
21 | 21 | import static com.google.firebase.firestore.util.LogicUtils.applyAssociation;
|
22 | 22 | import static com.google.firebase.firestore.util.LogicUtils.applyDistribution;
|
23 | 23 | import static com.google.firebase.firestore.util.LogicUtils.computeDistributedNormalForm;
|
| 24 | +import static com.google.firebase.firestore.util.LogicUtils.computeInExpansion; |
24 | 25 | import static com.google.firebase.firestore.util.LogicUtils.getDnfTerms;
|
25 | 26 | import static org.junit.Assert.assertEquals;
|
26 | 27 |
|
@@ -275,4 +276,39 @@ public void testComputeDnf8() {
|
275 | 276 | assertThat(computeDistributedNormalForm(compositeFilter)).isEqualTo(expectedResult);
|
276 | 277 | assertThat(getDnfTerms(compositeFilter)).isEqualTo(Arrays.asList(expectedDnfTerms));
|
277 | 278 | }
|
| 279 | + |
| 280 | + @Test |
| 281 | + public void testInExpansionForFieldFilters() { |
| 282 | + FieldFilter input1 = filter("a", "in", Arrays.asList(1, 2, 3)); |
| 283 | + FieldFilter input2 = filter("a", "<", 1); |
| 284 | + FieldFilter input3 = filter("a", "<=", 1); |
| 285 | + FieldFilter input4 = filter("a", "==", 1); |
| 286 | + FieldFilter input5 = filter("a", "!=", 1); |
| 287 | + FieldFilter input6 = filter("a", ">", 1); |
| 288 | + FieldFilter input7 = filter("a", ">=", 1); |
| 289 | + FieldFilter input8 = filter("a", "array-contains", 1); |
| 290 | + FieldFilter input9 = filter("a", "array-contains-any", Arrays.asList(1,2)); |
| 291 | + FieldFilter input10 = filter("a", "not-in", Arrays.asList(1,2)); |
| 292 | + |
| 293 | + assertThat(computeInExpansion(input1)).isEqualTo( |
| 294 | + orFilters( |
| 295 | + filter("a", "==", 1), |
| 296 | + filter("a", "==", 2), |
| 297 | + filter("a", "==", 3))); |
| 298 | + |
| 299 | + // Other operators should remain the same |
| 300 | + assertThat(computeInExpansion(input2)).isEqualTo(input2); |
| 301 | + assertThat(computeInExpansion(input3)).isEqualTo(input3); |
| 302 | + assertThat(computeInExpansion(input4)).isEqualTo(input4); |
| 303 | + assertThat(computeInExpansion(input5)).isEqualTo(input5); |
| 304 | + assertThat(computeInExpansion(input6)).isEqualTo(input6); |
| 305 | + assertThat(computeInExpansion(input7)).isEqualTo(input7); |
| 306 | + assertThat(computeInExpansion(input8)).isEqualTo(input8); |
| 307 | + assertThat(computeInExpansion(input9)).isEqualTo(input9); |
| 308 | + assertThat(computeInExpansion(input10)).isEqualTo(input10); |
| 309 | + } |
| 310 | + @Test |
| 311 | + public void testInExpansionForCompositeFilters() { |
| 312 | + // TODO |
| 313 | + } |
278 | 314 | }
|
0 commit comments