示例#1
0
def test_publish_changed_db(version1, version2, media_difference):

    depend1 = audb.dependencies(DB_NAME, version=version1)
    depend2 = audb.dependencies(DB_NAME, version=version2)

    media1 = set(sorted(depend1.media))
    media2 = set(sorted(depend2.media))

    assert media1 - media2 == set(media_difference)
示例#2
0
def test_load(format, version):

    assert not audb.exists(
        DB_NAME,
        version=version,
        format=format,
    )

    db = audb.load(
        DB_NAME,
        version=version,
        format=format,
        full_path=False,
        num_workers=pytest.NUM_WORKERS,
        verbose=False,
    )
    db_root = db.meta['audb']['root']

    assert audb.exists(DB_NAME, version=version)

    if version is None:
        resolved_version = audb.latest_version(DB_NAME)
    else:
        resolved_version = version
    db_original = audformat.Database.load(DB_ROOT_VERSION[resolved_version])

    if format is not None:
        db_original.map_files(
            lambda x: audeer.replace_file_extension(x, format)
        )

    pd.testing.assert_index_equal(db.files, db_original.files)
    for file in db.files:
        assert os.path.exists(os.path.join(db_root, file))
    for table in db.tables:
        assert os.path.exists(os.path.join(db_root, f'db.{table}.csv'))
        pd.testing.assert_frame_equal(
            db_original[table].df,
            db[table].df,
        )

    df = audb.cached()
    assert df.loc[db_root]['version'] == resolved_version

    deps = audb.dependencies(DB_NAME, version=version)
    assert str(deps().to_string()) == str(deps)
    assert len(deps) == len(db.files) + len(db.tables)

    # from cache with full path

    db = audb.load(
        DB_NAME,
        version=version,
        full_path=True,
        num_workers=pytest.NUM_WORKERS,
        verbose=False,
    )
    for file in db.files:
        assert os.path.exists(file)
    for table in db.tables:
        assert os.path.exists(os.path.join(db_root, f'db.{table}.csv'))
示例#3
0
def test_channels():
    deps = audb.dependencies(DB_NAME, version=DB_VERSION)
    assert audb.info.channels(DB_NAME) == set(
        [deps.channels(file) for file in deps.media if deps.channels(file)])
示例#4
0
def test_bit_depths():
    deps = audb.dependencies(DB_NAME, version=DB_VERSION)
    assert audb.info.bit_depths(DB_NAME) == set(
        [deps.bit_depth(file) for file in deps.media if deps.bit_depth(file)])
示例#5
0
def test_sampling_rates():
    deps = audb.dependencies(DB_NAME, version=DB_VERSION)
    assert audb.info.sampling_rates(DB_NAME) == set([
        deps.sampling_rate(file) for file in deps.media
        if deps.sampling_rate(file)
    ])
示例#6
0
def test_formats():
    deps = audb.dependencies(DB_NAME, version=DB_VERSION)
    assert audb.info.formats(DB_NAME) == set(
        [deps.format(file) for file in deps.media])
示例#7
0
def test_duration():
    deps = audb.dependencies(DB_NAME, version=DB_VERSION)
    assert audb.info.duration(DB_NAME) == pd.to_timedelta(
        sum([deps.duration(file) for file in deps.media]),
        unit='s',
    )