// Copyright (c) Microsoft. All rights reserved. using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.VectorData; using VectorData.ConformanceTests; using VectorData.ConformanceTests.Support; using Weaviate.ConformanceTests.Support; using Xunit; namespace Weaviate.ConformanceTests; public class WeaviateEmbeddingGenerationTests(WeaviateEmbeddingGenerationTests.StringVectorFixture fixture, WeaviateEmbeddingGenerationTests.RomOfFloatVectorFixture romOfFloatVectorFixture) : EmbeddingGenerationTests(fixture, romOfFloatVectorFixture), IClassFixture, IClassFixture { public new class StringVectorFixture : EmbeddingGenerationTests.StringVectorFixture { public override TestStore TestStore => WeaviateTestStore.NamedVectorsInstance; public override VectorStore CreateVectorStore(IEmbeddingGenerator? embeddingGenerator) => WeaviateTestStore.NamedVectorsInstance.GetVectorStore(new() { EmbeddingGenerator = embeddingGenerator }); public override Func[] DependencyInjectionStoreRegistrationDelegates => [ services => services .AddSingleton(WeaviateTestStore.NamedVectorsInstance.Client) .AddWeaviateVectorStore() ]; public override Func[] DependencyInjectionCollectionRegistrationDelegates => [ services => services .AddSingleton(WeaviateTestStore.NamedVectorsInstance.Client) .AddWeaviateCollection(this.CollectionName) ]; } public new class RomOfFloatVectorFixture : EmbeddingGenerationTests.RomOfFloatVectorFixture { public override TestStore TestStore => WeaviateTestStore.NamedVectorsInstance; public override VectorStore CreateVectorStore(IEmbeddingGenerator? embeddingGenerator) => WeaviateTestStore.NamedVectorsInstance.GetVectorStore(new() { EmbeddingGenerator = embeddingGenerator }); public override Func[] DependencyInjectionStoreRegistrationDelegates => [ services => services .AddSingleton(WeaviateTestStore.NamedVectorsInstance.Client) .AddWeaviateVectorStore() ]; public override Func[] DependencyInjectionCollectionRegistrationDelegates => [ services => services .AddSingleton(WeaviateTestStore.NamedVectorsInstance.Client) .AddWeaviateCollection(this.CollectionName) ]; } }