@@ -148,42 +148,80 @@ def test_repr(self):
148148 assert repr (refseq ).startswith ("ReferenceSequence" )
149149
150150
151- class TestAssertEquals :
152- def test_success_self (self , ts_fixture ):
151+ class TestEquals :
152+ def test_equal_self (self , ts_fixture ):
153153 ts_fixture .reference_sequence .assert_equals (ts_fixture .reference_sequence )
154+ assert ts_fixture .reference_sequence == ts_fixture .reference_sequence
155+ assert not ts_fixture .reference_sequence != ts_fixture .reference_sequence
156+ assert ts_fixture .reference_sequence .equals (ts_fixture .reference_sequence )
154157
155- def test_success_empty (self ):
158+ def test_equal_empty (self ):
156159 tables = tskit .TableCollection (1 )
157160 tables .reference_sequence .assert_equals (tables .reference_sequence )
161+ assert tables .reference_sequence == tables .reference_sequence
162+ assert tables .reference_sequence .equals (tables .reference_sequence )
158163
159164 @pytest .mark .parametrize ("attr" , ["url" , "data" ])
160- def test_fails_attr_missing (self , ts_fixture , attr ):
165+ def test_unequal_attr_missing (self , ts_fixture , attr ):
161166 t1 = ts_fixture .tables
162167 d = t1 .asdict ()
163168 del d ["reference_sequence" ][attr ]
164169 t2 = tskit .TableCollection .fromdict (d )
165170 with pytest .raises (AssertionError , match = attr ):
166171 t1 .reference_sequence .assert_equals (t2 .reference_sequence )
172+ assert t1 .reference_sequence != t2 .reference_sequence
173+ assert not t1 .reference_sequence .equals (t2 .reference_sequence )
167174 with pytest .raises (AssertionError , match = attr ):
168175 t2 .reference_sequence .assert_equals (t1 .reference_sequence )
169-
170- def test_fails_metadata_different (self , ts_fixture ):
176+ assert t2 .reference_sequence != t1 .reference_sequence
177+ assert not t2 .reference_sequence .equals (t1 .reference_sequence )
178+
179+ @pytest .mark .parametrize (
180+ ("attr" , "val" ),
181+ [
182+ ("url" , "foo" ),
183+ ("data" , "bar" ),
184+ ("metadata" , {"json" : "runs the world" }),
185+ ("metadata_schema" , tskit .MetadataSchema (None )),
186+ ],
187+ )
188+ def test_different_not_equal (self , ts_fixture , attr , val ):
171189 t1 = ts_fixture .dump_tables ()
172190 t2 = t1 .copy ()
173- t1 .reference_sequence .metadata = {"different" : "metadata" }
174- with pytest .raises (AssertionError , match = "metadata" ):
191+ setattr (t1 .reference_sequence , attr , val )
192+
193+ with pytest .raises (AssertionError ):
175194 t1 .reference_sequence .assert_equals (t2 .reference_sequence )
176- with pytest .raises (AssertionError , match = "metadata" ):
195+ assert t1 .reference_sequence != t2 .reference_sequence
196+ assert not t1 .reference_sequence .equals (t2 .reference_sequence )
197+ with pytest .raises (AssertionError ):
177198 t2 .reference_sequence .assert_equals (t1 .reference_sequence )
178-
179- def test_fails_metadata_schema_different (self , ts_fixture ):
199+ assert t2 .reference_sequence != t1 .reference_sequence
200+ assert not t2 .reference_sequence .equals (t1 .reference_sequence )
201+
202+ @pytest .mark .parametrize (
203+ ("attr" , "val" ),
204+ [
205+ ("metadata" , {"json" : "runs the world" }),
206+ ("metadata_schema" , tskit .MetadataSchema (None )),
207+ ],
208+ )
209+ def test_different_but_ignore (self , ts_fixture , attr , val ):
180210 t1 = ts_fixture .dump_tables ()
181211 t2 = t1 .copy ()
182- t1 .reference_sequence .metadata_schema = tskit .MetadataSchema (None )
183- with pytest .raises (AssertionError , match = "schemas" ):
212+ setattr (t1 .reference_sequence , attr , val )
213+
214+ with pytest .raises (AssertionError ):
184215 t1 .reference_sequence .assert_equals (t2 .reference_sequence )
185- with pytest .raises (AssertionError , match = "schemas" ):
216+ assert t1 .reference_sequence != t2 .reference_sequence
217+ assert not t1 .reference_sequence .equals (t2 .reference_sequence )
218+ with pytest .raises (AssertionError ):
186219 t2 .reference_sequence .assert_equals (t1 .reference_sequence )
220+ assert t2 .reference_sequence != t1 .reference_sequence
221+ assert not t2 .reference_sequence .equals (t1 .reference_sequence )
222+
223+ t2 .reference_sequence .assert_equals (t1 .reference_sequence , ignore_metadata = True )
224+ assert t2 .reference_sequence .equals (t1 .reference_sequence , ignore_metadata = True )
187225
188226
189227class TestTreeSequenceProperties :
0 commit comments