@@ -104,72 +104,198 @@ public void testDetermineTypes() {
104104 Allele TA = Allele .create ("TA" );
105105 Allele TC = Allele .create ("TC" );
106106 Allele symbolic = Allele .create ("<FOO>" );
107+ Allele nonRef = Allele .create (Allele .NON_REF_STRING , false );
107108
108109 // test REF
109110 List <Allele > alleles = Arrays .asList (Tref );
111+ List <Allele > allelesWithNonRef = new ArrayList <>(alleles );
112+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
110113 VariantContext vc = snpBuilder .alleles (alleles ).stop (snpLocStop ).make ();
111- Assert .assertEquals (vc .getType (), VariantContext .Type .NO_VARIATION );
114+ VariantContext vcWithNonRef = snpBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
115+ VariantContext .Type expectedType = VariantContext .Type .NO_VARIATION ;
116+ Assert .assertEquals (vc .getType (), expectedType );
117+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
112118
113119 // test SNPs
114120 alleles = Arrays .asList (Tref , A );
121+ allelesWithNonRef = new ArrayList <>(alleles );
122+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
115123 vc = snpBuilder .alleles (alleles ).stop (snpLocStop ).make ();
116- Assert .assertEquals (vc .getType (), VariantContext .Type .SNP );
124+ vcWithNonRef = snpBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
125+ expectedType = VariantContext .Type .SNP ;
126+ Assert .assertEquals (vc .getType (), expectedType );
127+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
117128
118129 alleles = Arrays .asList (Tref , A , C );
130+ allelesWithNonRef = new ArrayList <>(alleles );
131+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
119132 vc = snpBuilder .alleles (alleles ).stop (snpLocStop ).make ();
120- Assert .assertEquals (vc .getType (), VariantContext .Type .SNP );
133+ vcWithNonRef = snpBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
134+ expectedType = VariantContext .Type .SNP ;
135+ Assert .assertEquals (vc .getType (), expectedType );
136+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
121137
122138 // test MNPs
123139 alleles = Arrays .asList (ACref , TA );
140+ allelesWithNonRef = new ArrayList <>(alleles );
141+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
124142 vc = snpBuilder .alleles (alleles ).stop (snpLocStop +1 ).make ();
125- Assert .assertEquals (vc .getType (), VariantContext .Type .MNP );
143+ vcWithNonRef = snpBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
144+ expectedType = VariantContext .Type .MNP ;
145+ Assert .assertEquals (vc .getType (), expectedType );
146+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
126147
127148 alleles = Arrays .asList (ATCref , CAT , Allele .create ("GGG" ));
149+ allelesWithNonRef = new ArrayList <>(alleles );
150+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
128151 vc = basicBuilder .alleles (alleles ).stop (snpLocStop +2 ).make ();
129- Assert .assertEquals (vc .getType (), VariantContext .Type .MNP );
152+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
153+ expectedType = VariantContext .Type .MNP ;
154+ Assert .assertEquals (vc .getType (), expectedType );
155+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
130156
131157 // test INDELs
132158 alleles = Arrays .asList (Aref , ATC );
159+ allelesWithNonRef = new ArrayList <>(alleles );
160+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
133161 vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
134- Assert .assertEquals (vc .getType (), VariantContext .Type .INDEL );
162+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
163+ expectedType = VariantContext .Type .INDEL ;
164+ Assert .assertEquals (vc .getType (), expectedType );
165+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
135166
136167 alleles = Arrays .asList (ATCref , A );
168+ allelesWithNonRef = new ArrayList <>(alleles );
169+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
137170 vc = basicBuilder .alleles (alleles ).stop (snpLocStop +2 ).make ();
138- Assert .assertEquals (vc .getType (), VariantContext .Type .INDEL );
171+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
172+ expectedType = VariantContext .Type .INDEL ;
173+ Assert .assertEquals (vc .getType (), expectedType );
174+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
139175
140176 alleles = Arrays .asList (Tref , TA , TC );
177+ allelesWithNonRef = new ArrayList <>(alleles );
178+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
141179 vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
142- Assert .assertEquals (vc .getType (), VariantContext .Type .INDEL );
180+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
181+ expectedType = VariantContext .Type .INDEL ;
182+ Assert .assertEquals (vc .getType (), expectedType );
183+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
143184
144185 alleles = Arrays .asList (ATCref , A , AC );
186+ allelesWithNonRef = new ArrayList <>(alleles );
187+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
145188 vc = basicBuilder .alleles (alleles ).stop (snpLocStop +2 ).make ();
146- Assert .assertEquals (vc .getType (), VariantContext .Type .INDEL );
189+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
190+ expectedType = VariantContext .Type .INDEL ;
191+ Assert .assertEquals (vc .getType (), expectedType );
192+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
147193
148194 alleles = Arrays .asList (ATCref , A , Allele .create ("ATCTC" ));
195+ allelesWithNonRef = new ArrayList <>(alleles );
196+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
149197 vc = basicBuilder .alleles (alleles ).stop (snpLocStop +2 ).make ();
150- Assert .assertEquals (vc .getType (), VariantContext .Type .INDEL );
198+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
199+ expectedType = VariantContext .Type .INDEL ;
200+ Assert .assertEquals (vc .getType (), expectedType );
201+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
151202
152203 // test MIXED
153204 alleles = Arrays .asList (TAref , T , TC );
205+ allelesWithNonRef = new ArrayList <>(alleles );
206+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
154207 vc = basicBuilder .alleles (alleles ).stop (snpLocStop +1 ).make ();
155- Assert .assertEquals (vc .getType (), VariantContext .Type .MIXED );
208+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
209+ expectedType = VariantContext .Type .MIXED ;
210+ Assert .assertEquals (vc .getType (), expectedType );
211+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
156212
157213 alleles = Arrays .asList (TAref , T , AC );
214+ allelesWithNonRef = new ArrayList <>(alleles );
215+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
158216 vc = basicBuilder .alleles (alleles ).stop (snpLocStop +1 ).make ();
159- Assert .assertEquals (vc .getType (), VariantContext .Type .MIXED );
217+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
218+ expectedType = VariantContext .Type .MIXED ;
219+ Assert .assertEquals (vc .getType (), expectedType );
220+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
160221
161222 alleles = Arrays .asList (ACref , ATC , AT );
223+ allelesWithNonRef = new ArrayList <>(alleles );
224+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
162225 vc = basicBuilder .alleles (alleles ).stop (snpLocStop +1 ).make ();
163- Assert .assertEquals (vc .getType (), VariantContext .Type .MIXED );
226+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
227+ expectedType = VariantContext .Type .MIXED ;
228+ Assert .assertEquals (vc .getType (), expectedType );
229+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
164230
165231 alleles = Arrays .asList (Aref , T , symbolic );
232+ allelesWithNonRef = new ArrayList <>(alleles );
233+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
166234 vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
167- Assert .assertEquals (vc .getType (), VariantContext .Type .MIXED );
235+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
236+ expectedType = VariantContext .Type .MIXED ;
237+ Assert .assertEquals (vc .getType (), expectedType );
238+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
168239
169240 // test SYMBOLIC
170241 alleles = Arrays .asList (Tref , symbolic );
242+ allelesWithNonRef = new ArrayList <>(alleles );
243+ allelesWithNonRef .add (Allele .NON_REF_ALLELE );
171244 vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
172- Assert .assertEquals (vc .getType (), VariantContext .Type .SYMBOLIC );
245+ vcWithNonRef = basicBuilder .alleles (allelesWithNonRef ).stop (snpLocStop ).make ();
246+ expectedType = VariantContext .Type .SYMBOLIC ;
247+ Assert .assertEquals (vc .getType (), expectedType );
248+ Assert .assertEquals (vcWithNonRef .getType (true ), expectedType );
249+ }
250+
251+ @ Test
252+ public void testDetermineTypesIgnoringNonRef () {
253+ Allele AT = Allele .create ("AT" );
254+ Allele TC = Allele .create ("TC" );
255+ Allele symbolic = Allele .create ("<FOO>" );
256+
257+ List <Allele > alleles = Arrays .asList (Allele .REF_A , Allele .NON_REF_ALLELE );
258+ VariantContext vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
259+ Assert .assertEquals (vc .getType (false ), VariantContext .Type .SYMBOLIC );
260+
261+ alleles = Arrays .asList (Allele .REF_A , Allele .NON_REF_ALLELE , symbolic );
262+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
263+ Assert .assertEquals (vc .getType (false ), VariantContext .Type .SYMBOLIC );
264+
265+ alleles = Arrays .asList (Allele .REF_A , Allele .NON_REF_ALLELE , symbolic );
266+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
267+ Assert .assertEquals (vc .getType (true ), VariantContext .Type .SYMBOLIC );
268+
269+ alleles = Arrays .asList (Allele .REF_A , Allele .NON_REF_ALLELE );
270+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
271+ Assert .assertEquals (vc .getType (true ), VariantContext .Type .NO_VARIATION );
272+
273+ alleles = Arrays .asList (Allele .REF_A , Allele .ALT_C , Allele .NON_REF_ALLELE );
274+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
275+ Assert .assertEquals (vc .getType (true ), VariantContext .Type .SNP );
276+
277+ alleles = Arrays .asList (Allele .REF_A , Allele .NON_REF_ALLELE , Allele .ALT_C );
278+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
279+ Assert .assertEquals (vc .getType (true ), VariantContext .Type .SNP );
280+
281+ alleles = Arrays .asList (Allele .REF_A , AT , Allele .NON_REF_ALLELE );
282+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
283+ Assert .assertEquals (vc .getType (true ), VariantContext .Type .INDEL );
284+
285+ alleles = Arrays .asList (Allele .REF_A , Allele .ALT_C , TC , Allele .NON_REF_ALLELE );
286+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
287+ Assert .assertEquals (vc .getType (true ), VariantContext .Type .MIXED );
288+
289+ alleles = Arrays .asList (Allele .REF_A , Allele .ALT_C , symbolic , Allele .NON_REF_ALLELE );
290+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
291+ Assert .assertEquals (vc .getType (true ), VariantContext .Type .MIXED );
292+
293+ // Assure that the caching of the variant type is not persistent between ignoreNonRef being true and false
294+ alleles = Arrays .asList (Allele .REF_A , Allele .ALT_C , Allele .NON_REF_ALLELE );
295+ vc = basicBuilder .alleles (alleles ).stop (snpLocStop ).make ();
296+ Assert .assertEquals (vc .getType (), VariantContext .Type .MIXED );
297+ Assert .assertEquals (vc .getType (true ), VariantContext .Type .SNP );
298+ Assert .assertEquals (vc .getType (), VariantContext .Type .MIXED );
173299 }
174300
175301 @ Test
0 commit comments