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)
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'))
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)])
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)])
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) ])
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])
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', )