import asyncio
from oasysdb.prelude import Record, Collection, Config, Database
NAME = "vectors" DIMENSION = 128
LEN = 100
def create_test_database() -> Database:
db = Database.new("data/py")
assert db.is_empty()
records = Record.many_random(dimension=DIMENSION, len=LEN)
config = Config.create_default()
collection = Collection.from_records(config, records)
db.save_collection(name=NAME, collection=collection)
assert not db.is_empty()
return db
def test_open():
db = Database(path="data/mt")
assert db.is_empty()
def test_new():
db = create_test_database()
assert not db.is_empty()
assert db.len() == 1
def test_get_collection():
db = create_test_database()
collection = db.get_collection(name=NAME)
assert collection.len() == LEN
def test_save_collection():
db = create_test_database()
config = Config.create_default()
collection = Collection(config=config)
db.save_collection(name="test", collection=collection)
assert db.len() == 2
def test_delete_collection():
db = create_test_database()
db.delete_collection(name=NAME)
assert db.is_empty()
def test_flush():
db = create_test_database()
assert db.flush() > 0
def test_async_flush():
db = create_test_database()
assert asyncio.run(db.async_flush()) > 0