Beispiel #1
0
def test_get_attr_values():
    d = Document({
        'id': '123',
        'text': 'document',
        'feature1': 121,
        'name': 'name',
        'tags': {
            'id': 'identity',
            'a': 'b',
            'c': 'd'
        },
    })
    d.score = NamedScore(value=42)

    required_keys = [
        'id',
        'text',
        'tags__name',
        'tags__feature1',
        'score__value',
        'tags__c',
        'tags__id',
        'tags__inexistant',
        'inexistant',
    ]
    res = d.get_attributes(*required_keys)

    assert len(res) == len(required_keys)
    assert res[required_keys.index('id')] == '123'
    assert res[required_keys.index('tags__feature1')] == 121
    assert res[required_keys.index('tags__name')] == 'name'
    assert res[required_keys.index('text')] == 'document'
    assert res[required_keys.index('tags__c')] == 'd'
    assert res[required_keys.index('tags__id')] == 'identity'
    assert res[required_keys.index('score__value')] == 42
    assert res[required_keys.index('tags__inexistant')] is None
    assert res[required_keys.index('inexistant')] is None

    required_keys_2 = ['tags', 'text']
    res2 = d.get_attributes(*required_keys_2)
    assert len(res2) == 2
    assert res2[required_keys_2.index('text')] == 'document'
    assert res2[required_keys_2.index('tags')] == d.tags

    d = Document({
        'id': '123',
        'tags': {
            'outterkey': {
                'innerkey': 'real_value'
            }
        }
    })
    required_keys_3 = ['tags__outterkey__innerkey']
    res3 = d.get_attributes(*required_keys_3)
    assert res3 == 'real_value'

    d = Document(content=np.array([1, 2, 3]))
    res4 = np.stack(d.get_attributes(*['blob']))
    np.testing.assert_equal(res4, np.array([1, 2, 3]))
Beispiel #2
0
def test_get_attr():
    d = Document({
        'id': '123',
        'text': 'document',
        'feature1': 121,
        'name': 'name',
        'tags': {
            'id': 'identity',
            'a': 'b',
            'c': 'd'
        },
    })
    d.score = NamedScore(value=42)

    required_keys = [
        'id',
        'text',
        'tags__name',
        'tags__feature1',
        'score__value',
        'tags__c',
        'tags__id',
        'tags__inexistant',
        'inexistant',
    ]
    res = d.get_attrs(*required_keys)

    assert len(res.keys()) == len(required_keys)
    assert res['id'] == '123'
    assert res['tags__feature1'] == 121
    assert res['tags__name'] == 'name'
    assert res['text'] == 'document'
    assert res['tags__c'] == 'd'
    assert res['tags__id'] == 'identity'
    assert res['score__value'] == 42
    assert res['tags__inexistant'] is None
    assert res['inexistant'] is None

    res2 = d.get_attrs(*['tags', 'text'])
    assert len(res2.keys()) == 2
    assert res2['text'] == 'document'
    assert res2['tags'] == d.tags

    d = Document({
        'id': '123',
        'tags': {
            'outterkey': {
                'innerkey': 'real_value'
            }
        }
    })
    res3 = d.get_attrs(*['tags__outterkey__innerkey'])
    assert len(res3.keys()) == 1
    assert res3['tags__outterkey__innerkey'] == 'real_value'

    d = Document(content=np.array([1, 2, 3]))
    res4 = d.get_attrs(*['blob'])
    np.testing.assert_equal(res4['blob'], np.array([1, 2, 3]))
Beispiel #3
0
def test_doc_score():
    from jina.types.score import NamedScore

    doc = Document(text='text')

    score = NamedScore(op_name='operation', value=10.0, ref_id=doc.id)
    doc.score = score

    assert doc.score.op_name == 'operation'
    assert doc.score.value == 10.0
    assert doc.score.ref_id == doc.id
Beispiel #4
0
def test_doc_different_score_value_type(val):
    d = Document()
    d.score = val
    assert int(d.score.value) == 1