| |
| import os.path as osp |
| import tempfile |
|
|
| import mmcv |
| import pytest |
|
|
| from mmdet.datasets import CocoDataset |
|
|
|
|
| def _create_ids_error_coco_json(json_name): |
| image = { |
| 'id': 0, |
| 'width': 640, |
| 'height': 640, |
| 'file_name': 'fake_name.jpg', |
| } |
|
|
| annotation_1 = { |
| 'id': 1, |
| 'image_id': 0, |
| 'category_id': 0, |
| 'area': 400, |
| 'bbox': [50, 60, 20, 20], |
| 'iscrowd': 0, |
| } |
|
|
| annotation_2 = { |
| 'id': 1, |
| 'image_id': 0, |
| 'category_id': 0, |
| 'area': 900, |
| 'bbox': [100, 120, 30, 30], |
| 'iscrowd': 0, |
| } |
|
|
| categories = [{ |
| 'id': 0, |
| 'name': 'car', |
| 'supercategory': 'car', |
| }] |
|
|
| fake_json = { |
| 'images': [image], |
| 'annotations': [annotation_1, annotation_2], |
| 'categories': categories |
| } |
| mmcv.dump(fake_json, json_name) |
|
|
|
|
| def test_coco_annotation_ids_unique(): |
| tmp_dir = tempfile.TemporaryDirectory() |
| fake_json_file = osp.join(tmp_dir.name, 'fake_data.json') |
| _create_ids_error_coco_json(fake_json_file) |
|
|
| |
| with pytest.raises(AssertionError): |
| CocoDataset(ann_file=fake_json_file, classes=('car', ), pipeline=[]) |
|
|