1
1
package org.genspectrum.lapis.model
2
2
3
+ import org.genspectrum.lapis.silo.AminoAcidSymbolEquals
3
4
import org.genspectrum.lapis.silo.And
5
+ import org.genspectrum.lapis.silo.HasAminoAcidMutation
6
+ import org.genspectrum.lapis.silo.HasNucleotideMutation
4
7
import org.genspectrum.lapis.silo.Maybe
5
8
import org.genspectrum.lapis.silo.NOf
6
9
import org.genspectrum.lapis.silo.Not
7
10
import org.genspectrum.lapis.silo.NucleotideSymbolEquals
8
11
import org.genspectrum.lapis.silo.Or
9
12
import org.genspectrum.lapis.silo.PangoLineageEquals
10
- import org.hamcrest.MatcherAssert
11
- import org.hamcrest.Matchers
13
+ import org.hamcrest.MatcherAssert.assertThat
14
+ import org.hamcrest.Matchers.equalTo
12
15
import org.junit.jupiter.api.BeforeEach
13
16
import org.junit.jupiter.api.Test
14
17
import org.junit.jupiter.api.assertThrows
@@ -47,7 +50,7 @@ class VariantQueryFacadeTest {
47
50
),
48
51
),
49
52
),
50
- Not (NucleotideSymbolEquals (null , 600 , " - " )),
53
+ Not (HasNucleotideMutation (null , 600 )),
51
54
),
52
55
),
53
56
Maybe (
@@ -75,7 +78,7 @@ class VariantQueryFacadeTest {
75
78
),
76
79
)
77
80
78
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
81
+ assertThat(result, equalTo(expectedResult))
79
82
}
80
83
81
84
@Test
@@ -85,12 +88,21 @@ class VariantQueryFacadeTest {
85
88
val result = underTest.map(variantQuery)
86
89
87
90
val expectedResult = NucleotideSymbolEquals (null , 300 , " G" )
88
- MatcherAssert .assertThat(result, Matchers .equalTo(expectedResult))
91
+ assertThat(result, equalTo(expectedResult))
92
+ }
93
+
94
+ @Test
95
+ fun `given a variantQuery with mutation with position only then should return HasNucleotideMutation filter` () {
96
+ val variantQuery = " 400"
97
+
98
+ val result = underTest.map(variantQuery)
99
+
100
+ assertThat(result, equalTo(HasNucleotideMutation (null , 400 )))
89
101
}
90
102
91
103
@Test
92
104
fun `given a variantQuery with an 'And' expression then map should return the corresponding SiloQuery` () {
93
- val variantQuery = " 300G & 400"
105
+ val variantQuery = " 300G & 400- "
94
106
95
107
val result = underTest.map(variantQuery)
96
108
@@ -100,7 +112,7 @@ class VariantQueryFacadeTest {
100
112
NucleotideSymbolEquals (null , 400 , " -" ),
101
113
),
102
114
)
103
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
115
+ assertThat(result, equalTo(expectedResult))
104
116
}
105
117
106
118
@Test
@@ -120,7 +132,7 @@ class VariantQueryFacadeTest {
120
132
NucleotideSymbolEquals (null , 500 , " B" ),
121
133
),
122
134
)
123
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
135
+ assertThat(result, equalTo(expectedResult))
124
136
}
125
137
126
138
@Test
@@ -130,12 +142,12 @@ class VariantQueryFacadeTest {
130
142
val result = underTest.map(variantQuery)
131
143
132
144
val expectedResult = Not (NucleotideSymbolEquals (null , 300 , " G" ))
133
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
145
+ assertThat(result, equalTo(expectedResult))
134
146
}
135
147
136
148
@Test
137
149
fun `given a variant variantQuery with an 'Or' expression then map should return the corresponding SiloQuery` () {
138
- val variantQuery = " 300G | 400"
150
+ val variantQuery = " 300G | 400- "
139
151
140
152
val result = underTest.map(variantQuery)
141
153
@@ -145,7 +157,7 @@ class VariantQueryFacadeTest {
145
157
NucleotideSymbolEquals (null , 400 , " -" ),
146
158
),
147
159
)
148
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
160
+ assertThat(result, equalTo(expectedResult))
149
161
}
150
162
151
163
@Test
@@ -165,7 +177,7 @@ class VariantQueryFacadeTest {
165
177
),
166
178
),
167
179
)
168
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
180
+ assertThat(result, equalTo(expectedResult))
169
181
}
170
182
171
183
@Test
@@ -175,7 +187,7 @@ class VariantQueryFacadeTest {
175
187
val result = underTest.map(variantQuery)
176
188
177
189
val expectedResult = Maybe (NucleotideSymbolEquals (null , 300 , " G" ))
178
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
190
+ assertThat(result, equalTo(expectedResult))
179
191
}
180
192
181
193
@Test
@@ -185,7 +197,7 @@ class VariantQueryFacadeTest {
185
197
val result = underTest.map(variantQuery)
186
198
187
199
val expectedResult = PangoLineageEquals (" pango_lineage" , " A.1.2.3" , false )
188
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
200
+ assertThat(result, equalTo(expectedResult))
189
201
}
190
202
191
203
@Test
@@ -195,7 +207,7 @@ class VariantQueryFacadeTest {
195
207
val result = underTest.map(variantQuery)
196
208
197
209
val expectedResult = PangoLineageEquals (" pango_lineage" , " A.1.2.3" , true )
198
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
210
+ assertThat(result, equalTo(expectedResult))
199
211
}
200
212
201
213
@Test
@@ -213,7 +225,7 @@ class VariantQueryFacadeTest {
213
225
NucleotideSymbolEquals (null , 345 , " G" ),
214
226
),
215
227
)
216
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
228
+ assertThat(result, equalTo(expectedResult))
217
229
}
218
230
219
231
@Test
@@ -231,7 +243,7 @@ class VariantQueryFacadeTest {
231
243
NucleotideSymbolEquals (null , 345 , " G" ),
232
244
),
233
245
)
234
- MatcherAssert . assertThat(result, Matchers . equalTo(expectedResult))
246
+ assertThat(result, equalTo(expectedResult))
235
247
}
236
248
237
249
@Test
@@ -240,22 +252,46 @@ class VariantQueryFacadeTest {
240
252
241
253
val exception = assertThrows<SiloNotImplementedError > { underTest.map(variantQuery) }
242
254
243
- MatcherAssert . assertThat(
255
+ assertThat(
244
256
exception.message,
245
- Matchers . equalTo(" Nucleotide insertions are not supported yet." ),
257
+ equalTo(" Nucleotide insertions are not supported yet." ),
246
258
)
247
259
}
248
260
249
261
@Test
250
- fun `given a variant variantQuery with a 'AA mutation' expression then map should throw an error ` () {
262
+ fun `given amino acidAA mutation expression then should map to AminoAcidSymbolEquals ` () {
251
263
val variantQuery = " S:N501Y"
252
264
253
- val exception = assertThrows< SiloNotImplementedError > { underTest.map(variantQuery) }
265
+ val result = underTest.map(variantQuery)
254
266
255
- MatcherAssert .assertThat(
256
- exception.message,
257
- Matchers .equalTo(" Amino acid mutations are not supported yet." ),
258
- )
267
+ assertThat(result, equalTo(AminoAcidSymbolEquals (" S" , 501 , " Y" )))
268
+ }
269
+
270
+ @Test
271
+ fun `given amino acid mutation expression without first symbol then should map to AminoAcidSymbolEquals` () {
272
+ val variantQuery = " S:501Y"
273
+
274
+ val result = underTest.map(variantQuery)
275
+
276
+ assertThat(result, equalTo(AminoAcidSymbolEquals (" S" , 501 , " Y" )))
277
+ }
278
+
279
+ @Test
280
+ fun `given amino acid mutation expression without second symbol then should return HasAminoAcidMutation` () {
281
+ val variantQuery = " S:N501"
282
+
283
+ val result = underTest.map(variantQuery)
284
+
285
+ assertThat(result, equalTo(HasAminoAcidMutation (" S" , 501 )))
286
+ }
287
+
288
+ @Test
289
+ fun `given amino acid mutation expression without any symbol then should return HasAminoAcidMutation` () {
290
+ val variantQuery = " S:501"
291
+
292
+ val result = underTest.map(variantQuery)
293
+
294
+ assertThat(result, equalTo(HasAminoAcidMutation (" S" , 501 )))
259
295
}
260
296
261
297
@Test
@@ -264,9 +300,9 @@ class VariantQueryFacadeTest {
264
300
265
301
val exception = assertThrows<SiloNotImplementedError > { underTest.map(variantQuery) }
266
302
267
- MatcherAssert . assertThat(
303
+ assertThat(
268
304
exception.message,
269
- Matchers . equalTo(" Amino acid insertions are not supported yet." ),
305
+ equalTo(" Amino acid insertions are not supported yet." ),
270
306
)
271
307
}
272
308
@@ -276,9 +312,9 @@ class VariantQueryFacadeTest {
276
312
277
313
val exception = assertThrows<SiloNotImplementedError > { underTest.map(variantQuery) }
278
314
279
- MatcherAssert . assertThat(
315
+ assertThat(
280
316
exception.message,
281
- Matchers . equalTo(" Nextclade pango lineages are not supported yet." ),
317
+ equalTo(" Nextclade pango lineages are not supported yet." ),
282
318
)
283
319
}
284
320
@@ -288,9 +324,9 @@ class VariantQueryFacadeTest {
288
324
289
325
val exception = assertThrows<SiloNotImplementedError > { underTest.map(variantQuery) }
290
326
291
- MatcherAssert . assertThat(
327
+ assertThat(
292
328
exception.message,
293
- Matchers . equalTo(" Nextstrain clade lineages are not supported yet." ),
329
+ equalTo(" Nextstrain clade lineages are not supported yet." ),
294
330
)
295
331
}
296
332
@@ -300,9 +336,9 @@ class VariantQueryFacadeTest {
300
336
301
337
val exception = assertThrows<SiloNotImplementedError > { underTest.map(variantQuery) }
302
338
303
- MatcherAssert . assertThat(
339
+ assertThat(
304
340
exception.message,
305
- Matchers . equalTo(" Gisaid clade lineages are not supported yet." ),
341
+ equalTo(" Gisaid clade lineages are not supported yet." ),
306
342
)
307
343
}
308
344
}
0 commit comments