def test_dataset_wrapper(): # CustomDataset.load_annotations = MagicMock() # CustomDataset.__getitem__ = MagicMock(side_effect=lambda idx: idx) dataset_a = CustomDataset(img_dir=MagicMock(), pipeline=[]) len_a = 10 dataset_a.img_infos = MagicMock() dataset_a.img_infos.__len__.return_value = len_a dataset_b = CustomDataset(img_dir=MagicMock(), pipeline=[]) len_b = 20 dataset_b.img_infos = MagicMock() dataset_b.img_infos.__len__.return_value = len_b concat_dataset = ConcatDataset([dataset_a, dataset_b]) assert concat_dataset[5] == 5 assert concat_dataset[25] == 15 assert len(concat_dataset) == len(dataset_a) + len(dataset_b) repeat_dataset = RepeatDataset(dataset_a, 10) assert repeat_dataset[5] == 5 assert repeat_dataset[15] == 5 assert repeat_dataset[27] == 7 assert len(repeat_dataset) == 10 * len(dataset_a)
def test_dataset_wrapper(): # CustomDataset.load_annotations = MagicMock() # CustomDataset.__getitem__ = MagicMock(side_effect=lambda idx: idx) dataset_a = CustomDataset(img_dir=MagicMock(), pipeline=[]) len_a = 10 dataset_a.img_infos = MagicMock() dataset_a.img_infos.__len__.return_value = len_a dataset_b = CustomDataset(img_dir=MagicMock(), pipeline=[]) len_b = 20 dataset_b.img_infos = MagicMock() dataset_b.img_infos.__len__.return_value = len_b concat_dataset = ConcatDataset([dataset_a, dataset_b]) assert concat_dataset[5] == 5 assert concat_dataset[25] == 15 assert len(concat_dataset) == len(dataset_a) + len(dataset_b) repeat_dataset = RepeatDataset(dataset_a, 10) assert repeat_dataset[5] == 5 assert repeat_dataset[15] == 5 assert repeat_dataset[27] == 7 assert len(repeat_dataset) == 10 * len(dataset_a) img_scale = (60, 60) pipeline = [ dict(type='RandomMosaic', prob=1, img_scale=img_scale), dict(type='RandomFlip', prob=0.5), dict(type='Resize', img_scale=img_scale, keep_ratio=False), ] CustomDataset.load_annotations = MagicMock() results = [] for _ in range(2): height = np.random.randint(10, 30) weight = np.random.randint(10, 30) img = np.ones((height, weight, 3)) gt_semantic_seg = np.random.randint(5, size=(height, weight)) results.append(dict(gt_semantic_seg=gt_semantic_seg, img=img)) classes = ['0', '1', '2', '3', '4'] palette = [(0, 0, 0), (1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 4, 4)] CustomDataset.__getitem__ = MagicMock(side_effect=lambda idx: results[idx]) dataset_a = CustomDataset(img_dir=MagicMock(), pipeline=[], test_mode=True, classes=classes, palette=palette) len_a = 2 dataset_a.img_infos = MagicMock() dataset_a.img_infos.__len__.return_value = len_a multi_image_mix_dataset = MultiImageMixDataset(dataset_a, pipeline) assert len(multi_image_mix_dataset) == len(dataset_a) for idx in range(len_a): results_ = multi_image_mix_dataset[idx] # test skip_type_keys multi_image_mix_dataset = MultiImageMixDataset( dataset_a, pipeline, skip_type_keys=('RandomFlip')) for idx in range(len_a): results_ = multi_image_mix_dataset[idx] assert results_['img'].shape == (img_scale[0], img_scale[1], 3) skip_type_keys = ('RandomFlip', 'Resize') multi_image_mix_dataset.update_skip_type_keys(skip_type_keys) for idx in range(len_a): results_ = multi_image_mix_dataset[idx] assert results_['img'].shape[:2] != img_scale # test pipeline with pytest.raises(TypeError): pipeline = [['Resize']] multi_image_mix_dataset = MultiImageMixDataset(dataset_a, pipeline)