# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> # # SPDX-License-Identifier: GPL-3.0-or-later """Tests for the aggregated Montgomery-Shenzhen-Indian-PadChest dataset.""" import importlib import pytest @pytest.mark.parametrize( "name,padchest_name", [ ("default", "tb_idiap"), ], ) def test_split_consistency(name: str, padchest_name: str): montgomery = importlib.import_module( f".{name}", "mednet.config.data.montgomery" ).datamodule shenzhen = importlib.import_module( f".{name}", "mednet.config.data.shenzhen" ).datamodule indian = importlib.import_module( f".{name}", "mednet.config.data.indian" ).datamodule padchest = importlib.import_module( f".{padchest_name}", "mednet.config.data.padchest" ).datamodule combined = importlib.import_module( f".{name}", "mednet.config.data.montgomery_shenzhen_indian_padchest" ).datamodule MontgomeryLoader = importlib.import_module( ".datamodule", "mednet.config.data.montgomery" ).RawDataLoader ShenzhenLoader = importlib.import_module( ".datamodule", "mednet.config.data.shenzhen" ).RawDataLoader IndianLoader = importlib.import_module( ".datamodule", "mednet.config.data.indian" ).RawDataLoader PadChestLoader = importlib.import_module( ".datamodule", "mednet.config.data.padchest" ).RawDataLoader for split in ("train", "validation", "test"): assert montgomery.splits[split][0][0] == combined.splits[split][0][0] assert isinstance(montgomery.splits[split][0][1], MontgomeryLoader) assert isinstance(combined.splits[split][0][1], MontgomeryLoader) assert shenzhen.splits[split][0][0] == combined.splits[split][1][0] assert isinstance(shenzhen.splits[split][0][1], ShenzhenLoader) assert isinstance(combined.splits[split][1][1], ShenzhenLoader) assert indian.splits[split][0][0] == combined.splits[split][2][0] assert isinstance(indian.splits[split][0][1], IndianLoader) assert isinstance(combined.splits[split][2][1], IndianLoader) if split != "validation": # padchest has no validation assert padchest.splits[split][0][0] == combined.splits[split][3][0] assert isinstance(padchest.splits[split][0][1], PadChestLoader) assert isinstance(combined.splits[split][3][1], PadChestLoader)