@@ -106,6 +106,16 @@ def test_variant_position(self, ds):
106
106
def test_variant_allele (self , ds ):
107
107
nt .assert_array_equal (ds .variant_allele , [["A" , "G" ], ["T" , "C" ]])
108
108
109
+ def test_contig_id (self , ds ):
110
+ """Test that contig identifiers are correctly extracted and stored."""
111
+ nt .assert_array_equal (ds .contig_id , ["1" ])
112
+
113
+ def test_variant_contig (self , ds ):
114
+ """Test that variant to contig mapping is correctly stored."""
115
+ nt .assert_array_equal (
116
+ ds .variant_contig , [0 , 0 ]
117
+ ) # Both variants on chromosome 1
118
+
109
119
def test_genotypes (self , ds ):
110
120
call_genotype = ds .call_genotype .values
111
121
assert call_genotype .shape == (2 , 10 , 2 )
@@ -196,6 +206,24 @@ def test_genotypes(self, ds):
196
206
# FIXME not working
197
207
nt .assert_array_equal (actual , expected )
198
208
209
+ def test_contig_arrays (self , ds ):
210
+ """Test that contig arrays are correctly created and filled."""
211
+ # Verify contig_id exists and is a string array
212
+ assert hasattr (ds , "contig_id" )
213
+ assert ds .contig_id .dtype == np .dtype ("O" )
214
+
215
+ # Verify variant_contig exists and contains integer indices
216
+ assert hasattr (ds , "variant_contig" )
217
+ assert ds .variant_contig .dtype == np .dtype ("int8" )
218
+ assert ds .variant_contig .shape [0 ] == 100 # 100 variants
219
+
220
+ # Verify mapping between variant_contig and contig_id
221
+ # For each unique contig index, check at least one corresponding variant exists
222
+ for i , contig in enumerate (ds .contig_id .values ):
223
+ assert np .any (
224
+ ds .variant_contig .values == i
225
+ ), f"No variants found for contig { contig } "
226
+
199
227
# @pytest.mark.xfail
200
228
@pytest .mark .parametrize (
201
229
("variants_chunk_size" , "samples_chunk_size" ),
0 commit comments