@@ -76,6 +76,15 @@ class TestGeoDataset:
76
76
def dataset (self ) -> GeoDataset :
77
77
return CustomGeoDataset ()
78
78
79
+ @pytest .fixture (scope = "class" )
80
+ def files (self ) -> list [str ]:
81
+ """Example list of files in the expected output order.
82
+
83
+ Used to test the titular property.
84
+ """
85
+ files = ["file://file1.tif" , "file://file2.tif" , "file://file3.tif" ]
86
+ return files
87
+
79
88
def test_getitem (self , dataset : GeoDataset ) -> None :
80
89
query = BoundingBox (0 , 1 , 2 , 3 , 4 , 5 )
81
90
assert dataset [query ] == {"index" : query }
@@ -177,6 +186,21 @@ def test_files_property_for_virtual_files(self) -> None:
177
186
]
178
187
assert len (CustomGeoDataset (paths = paths ).files ) == len (paths )
179
188
189
+ def test_files_property_ordered (self , files : list [str ]) -> None :
190
+ """Ensure that the list of files is ordered."""
191
+ paths = ["file://file3.tif" , "file://file1.tif" , "file://file2.tif" ]
192
+ assert CustomGeoDataset (paths = paths ).files == files
193
+
194
+ def test_files_property_deterministic (self , files : list [str ]) -> None :
195
+ """Ensure that the list of files is consistent regardless of their original
196
+ order.
197
+ """
198
+ paths1 = ["file://file3.tif" , "file://file1.tif" , "file://file2.tif" ]
199
+ paths2 = ["file://file2.tif" , "file://file3.tif" , "file://file1.tif" ]
200
+ assert (
201
+ CustomGeoDataset (paths = paths1 ).files == CustomGeoDataset (paths = paths2 ).files
202
+ )
203
+
180
204
181
205
class TestRasterDataset :
182
206
@pytest .fixture (params = zip ([["R" , "G" , "B" ], None ], [True , False ]))
0 commit comments