Пример #1
0
def test_indico_api_image_extractor():
    ext = IndicoAPIImageExtractor(api_key=os.environ['INDICO_APP_KEY'],
                                  models=['fer', 'content_filtering'])

    image_dir = join(get_test_data_path(), 'image')
    stim1 = ImageStim(join(image_dir, 'apple.jpg'))
    result1 = merge_results(ext.transform([stim1, stim1]),
                            extractor_names=False)
    outdfKeysCheck = {
        'object_id', 'fer_Surprise', 'fer_Neutral', 'fer_Sad', 'fer_Happy',
        'fer_Angry', 'fer_Fear', 'content_filtering'
    }
    meta_columns = {
        'source_file', 'history', 'class', 'filename', 'onset', 'duration',
        'order'
    }

    assert set(result1.columns) - set(['stim_name'
                                       ]) == outdfKeysCheck | meta_columns
    assert result1['content_filtering'][0] < 0.2

    stim2 = ImageStim(join(image_dir, 'obama.jpg'))
    result2 = ext.transform(stim2).to_df(timing=False, object_id=True)
    assert set(result2.columns) == outdfKeysCheck
    assert result2['fer_Happy'][0] > 0.7
Пример #2
0
def test_indico_api_image_extractor():
    ext = IndicoAPIImageExtractor(api_key=os.environ['INDICO_APP_KEY'],
                                  models=['fer', 'content_filtering'])
    stim1 = ImageStim(join(IMAGE_DIR, 'apple.jpg'))
    result1 = merge_results(ext.transform([stim1, stim1]),
                            extractor_names=False)
    outdfKeysCheck = {
        'object_id',
        'fer_Surprise',
        'fer_Neutral',
        'fer_Sad',
        'fer_Happy',
        'fer_Angry',
        'fer_Fear',
        'content_filtering'}
    meta_columns = {'source_file',
                    'history',
                    'class',
                    'filename',
                    'onset',
                    'duration',
                    'order'}

    assert set(result1.columns) - set(['stim_name']) == outdfKeysCheck | meta_columns
    assert result1['content_filtering'][0] < 0.2

    stim2 = ImageStim(join(IMAGE_DIR, 'obama.jpg'))
    result2 = ext.transform(stim2).to_df(timing=False, object_id=True)
    assert set(result2.columns) == outdfKeysCheck
    assert result2['fer_Happy'][0] > 0.7

    url = 'https://via.placeholder.com/350x150'
    stim = ImageStim(url=url)
    result = ext.transform(stim).to_df()
    assert result['fer_Neutral'][0] > 0.
Пример #3
0
def test_indico_api_image_extractor():

    ext = IndicoAPIImageExtractor(api_key=os.environ['INDICO_APP_KEY'],
                                  models=['fer', 'content_filtering'])

    image_dir = join(get_test_data_path(), 'image')
    stim1 = ImageStim(join(image_dir, 'apple.jpg'))
    result1 = ext.transform(stim1).to_df()

    outdfKeysCheck = set(['onset',
        'duration',
        'fer_Surprise',
        'fer_Neutral',
        'fer_Sad',
        'fer_Happy',
        'fer_Angry',
        'fer_Fear',
        'content_filtering'])

    assert set(result1.columns) == outdfKeysCheck
    assert result1['content_filtering'][0] < 0.1

    stim2 = ImageStim(join(image_dir, 'obama.jpg'))
    result2 = ext.transform(stim2).to_df()
    assert set(result2.columns) == outdfKeysCheck
    assert result2['fer_Happy'][0] > 0.7
Пример #4
0
def test_indico_api_image_extractor():
    ext = IndicoAPIImageExtractor(api_key=os.environ['INDICO_APP_KEY'],
                                  models=['fer', 'content_filtering'])
    stim1 = ImageStim(join(IMAGE_DIR, 'apple.jpg'))
    result1 = merge_results(ext.transform([stim1, stim1]),
                            extractor_names=False)
    outdfKeysCheck = {
        'object_id', 'fer_Surprise', 'fer_Neutral', 'fer_Sad', 'fer_Happy',
        'fer_Angry', 'fer_Fear', 'content_filtering'
    }
    meta_columns = {
        'source_file', 'history', 'class', 'filename', 'onset', 'duration',
        'order'
    }

    assert set(result1.columns) - set(['stim_name'
                                       ]) == outdfKeysCheck | meta_columns
    assert result1['content_filtering'][0] < 0.2

    stim2 = ImageStim(join(IMAGE_DIR, 'obama.jpg'))
    result2 = ext.transform(stim2).to_df(timing=False, object_id=True)
    assert set(result2.columns) == outdfKeysCheck
    assert result2['fer_Happy'][0] > 0.7

    url = 'https://tuition.utexas.edu/sites/all/themes/tuition/logo.png'
    stim = ImageStim(url=url)
    result = ext.transform(stim).to_df()
    assert result['fer_Neutral'][0] > 0.1
Пример #5
0
def test_indico_api_extractor_rate_limit():
    stim = ImageStim(join(IMAGE_DIR, 'apple.jpg'))
    stim2 = ImageStim(join(IMAGE_DIR, 'obama.jpg'))
    ext = IndicoAPIImageExtractor(models=['image_features'], rate_limit=5, batch_size=1)
    t1 = time.time()
    ext.transform([stim, stim2])
    t2 = time.time()
    assert t2 - t1 >= 5
Пример #6
0
def test_indico_api_extractor_rate_limit():
    stim = ImageStim(join(IMAGE_DIR, 'apple.jpg'))
    stim2 = ImageStim(join(IMAGE_DIR, 'obama.jpg'))
    ext = IndicoAPIImageExtractor(models=['fer'], rate_limit=5)
    ext._batch_size = 1
    t1 = time.time()
    ext.transform([stim, stim2])
    t2 = time.time()
    assert t2 - t1 >= 5
Пример #7
0
def test_indico_api_extractor_large():
    default = config.get_option('allow_large_jobs')
    default_large = config.get_option('large_job')
    config.set_option('allow_large_jobs', False)
    config.set_option('large_job', 1)

    ext = IndicoAPIImageExtractor(models=['fer'])

    images = [ImageStim(join(IMAGE_DIR, 'apple.jpg'))] * 2
    with pytest.raises(ValueError):
        merge_results(ext.transform(images))

    config.set_option('allow_large_jobs', True)

    results = merge_results(ext.transform(images))
    assert 'IndicoAPIImageExtractor#fer_Neutral' in results.columns
    assert results.shape == (1, 15)  # not 2 rows cause all the same instance

    config.set_option('allow_large_jobs', default)
    config.set_option('large_job', default_large)
Пример #8
0
def test_indico_api_extractor_large():
    default = config.get_option('allow_large_jobs')
    default_large = config.get_option('large_job')
    config.set_option('allow_large_jobs', False)
    config.set_option('large_job', 1)

    ext = IndicoAPIImageExtractor(models=['fer'])

    images = [ImageStim(join(IMAGE_DIR, 'apple.jpg')),
              ImageStim(join(IMAGE_DIR, 'obama.jpg'))]
    with pytest.raises(ValueError):
        merge_results(ext.transform(images))

    config.set_option('allow_large_jobs', True)

    results = merge_results(ext.transform(images))
    assert 'IndicoAPIImageExtractor#fer_Neutral' in results.columns
    assert results.shape == (2, 15)

    config.set_option('allow_large_jobs', default)
    config.set_option('large_job', default_large)