|
|
|
import json |
|
|
|
import pytest |
|
|
|
from mmocr.datasets.utils.parser import LineJsonParser, LineStrParser |
|
|
|
|
|
def test_line_str_parser(): |
|
data_ret = ['sample1.jpg hello\n', 'sample2.jpg world'] |
|
keys = ['filename', 'text'] |
|
keys_idx = [0, 1] |
|
separator = ' ' |
|
|
|
|
|
with pytest.raises(AssertionError): |
|
parser = LineStrParser('filename', keys_idx, separator) |
|
with pytest.raises(AssertionError): |
|
parser = LineStrParser(keys, keys_idx, [' ']) |
|
with pytest.raises(AssertionError): |
|
parser = LineStrParser(keys, [0], separator) |
|
|
|
|
|
parser = LineStrParser(keys, keys_idx, separator) |
|
assert parser.get_item(data_ret, 0) == { |
|
'filename': 'sample1.jpg', |
|
'text': 'hello' |
|
} |
|
|
|
with pytest.raises(Exception): |
|
parser = LineStrParser(['filename', 'text', 'ignore'], [0, 1, 2], |
|
separator) |
|
parser.get_item(data_ret, 0) |
|
|
|
|
|
def test_line_dict_parser(): |
|
data_ret = [ |
|
json.dumps({ |
|
'filename': 'sample1.jpg', |
|
'text': 'hello' |
|
}), |
|
json.dumps({ |
|
'filename': 'sample2.jpg', |
|
'text': 'world' |
|
}) |
|
] |
|
keys = ['filename', 'text'] |
|
|
|
|
|
with pytest.raises(AssertionError): |
|
parser = LineJsonParser('filename') |
|
with pytest.raises(AssertionError): |
|
parser = LineJsonParser([]) |
|
|
|
|
|
parser = LineJsonParser(keys) |
|
assert parser.get_item(data_ret, 0) == { |
|
'filename': 'sample1.jpg', |
|
'text': 'hello' |
|
} |
|
|
|
with pytest.raises(Exception): |
|
parser = LineJsonParser(['img_name', 'text']) |
|
parser.get_item(data_ret, 0) |
|
|