4444 */
4545public class AzureAiSearchFilterExpressionConverterTests {
4646
47- private static String format (String text ) {
48- return text .trim ().replace (" " + System .lineSeparator (), System .lineSeparator ()) + System .lineSeparator ();
49- }
50-
5147 @ Test
5248 public void testMissingFilterName () {
5349
@@ -79,10 +75,9 @@ public void testEQ() {
7975 List .of (MetadataField .text ("country" )));
8076
8177 // country == "BG"
78+ String expected = "meta_country eq 'BG'" ;
8279 String vectorExpr = converter .convertExpression (new Expression (EQ , new Key ("country" ), new Value ("BG" )));
83- assertThat (format (vectorExpr )).isEqualTo ("""
84- meta_country eq 'BG'
85- """ );
80+ assertThat (vectorExpr ).isEqualTo (expected );
8681 }
8782
8883 @ Test
@@ -91,12 +86,11 @@ public void tesEqAndGte() {
9186 List .of (MetadataField .text ("genre" ), MetadataField .int32 ("year" )));
9287
9388 // genre == "drama" AND year >= 2020
89+ String expected = "meta_genre eq 'drama' and meta_year ge 2020" ;
9490 String vectorExpr = converter
9591 .convertExpression (new Expression (AND , new Expression (EQ , new Key ("genre" ), new Value ("drama" )),
9692 new Expression (GTE , new Key ("year" ), new Value (2020 ))));
97- assertThat (format (vectorExpr )).isEqualTo ("""
98- meta_genre eq 'drama' and meta_year ge 2020
99- """ );
93+ assertThat (vectorExpr ).isEqualTo (expected );
10094 }
10195
10296 @ Test
@@ -105,11 +99,10 @@ public void tesIn() {
10599 List .of (MetadataField .text ("genre" )));
106100
107101 // genre in ["comedy", "documentary", "drama"]
102+ String expected = " search.in(meta_genre, 'comedy,documentary,drama', ',')" ;
108103 String vectorExpr = converter .convertExpression (
109104 new Expression (IN , new Key ("genre" ), new Value (List .of ("comedy" , "documentary" , "drama" ))));
110- assertThat (format (vectorExpr )).isEqualTo ("""
111- search.in(meta_genre, 'comedy,documentary,drama', ',')
112- """ );
105+ assertThat (vectorExpr ).isEqualTo (expected );
113106 }
114107
115108 @ Test
@@ -118,11 +111,10 @@ public void tesNin() {
118111 List .of (MetadataField .text ("genre" )));
119112
120113 // genre in ["comedy", "documentary", "drama"]
114+ String expected = " not search.in(meta_genre, 'comedy,documentary,drama', ',')" ;
121115 String vectorExpr = converter .convertExpression (
122116 new Expression (NIN , new Key ("genre" ), new Value (List .of ("comedy" , "documentary" , "drama" ))));
123- assertThat (format (vectorExpr )).isEqualTo ("""
124- not search.in(meta_genre, 'comedy,documentary,drama', ',')
125- """ );
117+ assertThat (vectorExpr ).isEqualTo (expected );
126118 }
127119
128120 @ Test
@@ -131,13 +123,12 @@ public void testNe() {
131123 List .of (MetadataField .text ("city" ), MetadataField .int64 ("year" ), MetadataField .text ("country" )));
132124
133125 // year >= 2020 OR country == "BG" AND city != "Sofia"
126+ String expected = "meta_year ge 2020 or meta_country eq 'BG' and meta_city ne 'Sofia'" ;
134127 String vectorExpr = converter
135128 .convertExpression (new Expression (OR , new Expression (GTE , new Key ("year" ), new Value (2020 )),
136129 new Expression (AND , new Expression (EQ , new Key ("country" ), new Value ("BG" )),
137130 new Expression (NE , new Key ("city" ), new Value ("Sofia" )))));
138- assertThat (format (vectorExpr )).isEqualTo ("""
139- meta_year ge 2020 or meta_country eq 'BG' and meta_city ne 'Sofia'
140- """ );
131+ assertThat (vectorExpr ).isEqualTo (expected );
141132 }
142133
143134 @ Test
@@ -146,14 +137,12 @@ public void testGroup() {
146137 List .of (MetadataField .text ("city" ), MetadataField .int64 ("year" ), MetadataField .text ("country" )));
147138
148139 // (year >= 2020 OR country == "BG") AND city != "Sofia"
140+ String expected = "(meta_year ge 2020 or meta_country eq 'BG') and meta_city ne 'Sofia'" ;
149141 String vectorExpr = converter .convertExpression (new Expression (AND ,
150142 new Group (new Expression (OR , new Expression (GTE , new Key ("year" ), new Value (2020 )),
151143 new Expression (EQ , new Key ("country" ), new Value ("BG" )))),
152144 new Expression (NE , new Key ("city" ), new Value ("Sofia" ))));
153-
154- assertThat (format (vectorExpr )).isEqualTo ("""
155- (meta_year ge 2020 or meta_country eq 'BG') and meta_city ne 'Sofia'
156- """ );
145+ assertThat (vectorExpr ).isEqualTo (expected );
157146 }
158147
159148 @ Test
@@ -162,14 +151,12 @@ public void tesBoolean() {
162151 List .of (MetadataField .bool ("isOpen" ), MetadataField .int64 ("year" ), MetadataField .text ("country" )));
163152
164153 // isOpen == true AND year >= 2020 AND country IN ["BG", "NL", "US"]
154+ String expected = "meta_isOpen eq true and meta_year ge 2020 and search.in(meta_country, 'BG,NL,US', ',')" ;
165155 String vectorExpr = converter .convertExpression (new Expression (AND ,
166156 new Expression (AND , new Expression (EQ , new Key ("isOpen" ), new Value (true )),
167157 new Expression (GTE , new Key ("year" ), new Value (2020 ))),
168158 new Expression (IN , new Key ("country" ), new Value (List .of ("BG" , "NL" , "US" )))));
169-
170- assertThat (format (vectorExpr )).isEqualTo ("""
171- meta_isOpen eq true and meta_year ge 2020 and search.in(meta_country, 'BG,NL,US', ',')
172- """ );
159+ assertThat (vectorExpr ).isEqualTo (expected );
173160 }
174161
175162 @ Test
@@ -181,27 +168,21 @@ public void testDecimal() {
181168 String vectorExpr = converter
182169 .convertExpression (new Expression (AND , new Expression (GTE , new Key ("temperature" ), new Value (-15.6 )),
183170 new Expression (LTE , new Key ("temperature" ), new Value (20.13 ))));
184-
185- assertThat (format (vectorExpr )).isEqualTo ("""
186- meta_temperature ge -15.6 and meta_temperature le 20.13
187- """ );
171+ String expected = "meta_temperature ge -15.6 and meta_temperature le 20.13" ;
188172 }
189173
190174 @ Test
191175 public void testComplexIdentifiers () {
192176 FilterExpressionConverter converter = new AzureAiSearchFilterExpressionConverter (
193177 List .of (MetadataField .text ("country 1 2 3" )));
194178
179+ String expected = "'meta_country 1 2 3' eq 'BG'" ;
195180 String vectorExpr = converter
196181 .convertExpression (new Expression (EQ , new Key ("\" country 1 2 3\" " ), new Value ("BG" )));
197- assertThat (format (vectorExpr )).isEqualTo ("""
198- 'meta_country 1 2 3' eq 'BG'
199- """ );
182+ assertThat (vectorExpr ).isEqualTo (expected );
200183
201184 vectorExpr = converter .convertExpression (new Expression (EQ , new Key ("'country 1 2 3'" ), new Value ("BG" )));
202- assertThat (format (vectorExpr )).isEqualTo ("""
203- 'meta_country 1 2 3' eq 'BG'
204- """ );
185+ assertThat (vectorExpr ).isEqualTo (expected );
205186 }
206187
207188}
0 commit comments