// Copyright (c) Microsoft. All rights reserved. using Microsoft.Extensions.AI; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.VectorData; using SqlServer.ConformanceTests.Support; using VectorData.ConformanceTests; using VectorData.ConformanceTests.Support; using Xunit; namespace SqlServer.ConformanceTests; public class SqlServerEmbeddingGenerationTests(SqlServerEmbeddingGenerationTests.StringVectorFixture stringVectorFixture, SqlServerEmbeddingGenerationTests.RomOfFloatVectorFixture romOfFloatVectorFixture) : EmbeddingGenerationTests(stringVectorFixture, romOfFloatVectorFixture), IClassFixture, IClassFixture { public new class StringVectorFixture : EmbeddingGenerationTests.StringVectorFixture { public override TestStore TestStore => SqlServerTestStore.Instance; public override VectorStore CreateVectorStore(IEmbeddingGenerator? embeddingGenerator) => SqlServerTestStore.Instance.GetVectorStore(new() { EmbeddingGenerator = embeddingGenerator }); public override Func[] DependencyInjectionStoreRegistrationDelegates => [ services => services.AddSqlServerVectorStore(sp => SqlServerTestStore.Instance.ConnectionString) ]; public override Func[] DependencyInjectionCollectionRegistrationDelegates => [ services => services.AddSqlServerCollection(this.CollectionName, sp => SqlServerTestStore.Instance.ConnectionString), services => services.AddSqlServerCollection(this.CollectionName, SqlServerTestStore.Instance.ConnectionString), ]; } public new class RomOfFloatVectorFixture : EmbeddingGenerationTests.RomOfFloatVectorFixture { public override TestStore TestStore => SqlServerTestStore.Instance; public override VectorStore CreateVectorStore(IEmbeddingGenerator? embeddingGenerator) => SqlServerTestStore.Instance.GetVectorStore(new() { EmbeddingGenerator = embeddingGenerator }); public override Func[] DependencyInjectionStoreRegistrationDelegates => [ services => services.AddSqlServerVectorStore(sp => SqlServerTestStore.Instance.ConnectionString) ]; public override Func[] DependencyInjectionCollectionRegistrationDelegates => [ services => services.AddSqlServerCollection(this.CollectionName, sp => SqlServerTestStore.Instance.ConnectionString), services => services.AddSqlServerCollection(this.CollectionName, SqlServerTestStore.Instance.ConnectionString), ]; } }