Skip to content

Commit cd34dcd

Browse files
authored
.Net: Add MEVD TestSuiteImplementationTests (#12574)
I noticed that actual test suite implementation is a bit spotty across providers; so this adds a test suite which tests that all other test suites are implemented. We have this in the EF tests as well, also as a way of letting provider maintainers know when a new test suite is introduced which they probably want to implement. Of course, providers can explicitly ignore specific test suites which don't make sense for them. Part of #10194
1 parent 1efc7ad commit cd34dcd

File tree

15 files changed

+301
-3
lines changed

15 files changed

+301
-3
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.VectorSearch;
5+
6+
namespace AzureAISearch.ConformanceTests;
7+
8+
public class AzureAISearchTestSuiteImplementationTests : TestSuiteImplementationTests
9+
{
10+
protected override ICollection<Type> IgnoredTestBases { get; } =
11+
[
12+
typeof(VectorSearchDistanceFunctionComplianceTests<>),
13+
typeof(VectorSearchWithFilterConformanceTests<>),
14+
];
15+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.CRUD;
5+
using VectorData.ConformanceTests.HybridSearch;
6+
using VectorData.ConformanceTests.VectorSearch;
7+
8+
namespace CosmosMongoDB.ConformanceTests;
9+
10+
public class CosmosMongoTestSuiteImplementationTests : TestSuiteImplementationTests
11+
{
12+
protected override ICollection<Type> IgnoredTestBases { get; } =
13+
[
14+
typeof(VectorSearchDistanceFunctionComplianceTests<>),
15+
typeof(VectorSearchWithFilterConformanceTests<>),
16+
typeof(DynamicDataModelConformanceTests<>),
17+
18+
// Hybrid search not supported
19+
typeof(KeywordVectorizedHybridSearchComplianceTests<>),
20+
];
21+
}

dotnet/test/VectorData/CosmosNoSql.ConformanceTests/CosmosNoSqlEmbeddingGenerationTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
namespace CosmosNoSql.ConformanceTests;
1212

13-
public class CosmosNoSQLEmbeddingGenerationTests(CosmosNoSQLEmbeddingGenerationTests.StringVectorFixture stringVectorFixture, CosmosNoSQLEmbeddingGenerationTests.RomOfFloatVectorFixture romOfFloatVectorFixture)
14-
: EmbeddingGenerationTests<string>(stringVectorFixture, romOfFloatVectorFixture), IClassFixture<CosmosNoSQLEmbeddingGenerationTests.StringVectorFixture>, IClassFixture<CosmosNoSQLEmbeddingGenerationTests.RomOfFloatVectorFixture>
13+
public class CosmosNoSqlEmbeddingGenerationTests(CosmosNoSqlEmbeddingGenerationTests.StringVectorFixture stringVectorFixture, CosmosNoSqlEmbeddingGenerationTests.RomOfFloatVectorFixture romOfFloatVectorFixture)
14+
: EmbeddingGenerationTests<string>(stringVectorFixture, romOfFloatVectorFixture), IClassFixture<CosmosNoSqlEmbeddingGenerationTests.StringVectorFixture>, IClassFixture<CosmosNoSqlEmbeddingGenerationTests.RomOfFloatVectorFixture>
1515
{
1616
public new class StringVectorFixture : EmbeddingGenerationTests<string>.StringVectorFixture
1717
{
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.CRUD;
5+
using VectorData.ConformanceTests.VectorSearch;
6+
7+
namespace CosmosNoSql.ConformanceTests;
8+
9+
public class CosmosNoSqlTestSuiteImplementationTests : TestSuiteImplementationTests
10+
{
11+
protected override ICollection<Type> IgnoredTestBases { get; } =
12+
[
13+
typeof(VectorSearchDistanceFunctionComplianceTests<>),
14+
typeof(VectorSearchWithFilterConformanceTests<>),
15+
typeof(DynamicDataModelConformanceTests<>),
16+
typeof(BatchConformanceTests<>)
17+
];
18+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.HybridSearch;
5+
using VectorData.ConformanceTests.VectorSearch;
6+
7+
namespace InMemory.ConformanceTests;
8+
9+
public class InMemoryTestSuiteImplementationTests : TestSuiteImplementationTests
10+
{
11+
protected override ICollection<Type> IgnoredTestBases { get; } =
12+
[
13+
typeof(DependencyInjectionTests<,,,>),
14+
typeof(VectorSearchDistanceFunctionComplianceTests<>),
15+
typeof(VectorSearchWithFilterConformanceTests<>),
16+
17+
// Hybrid search not supported
18+
typeof(KeywordVectorizedHybridSearchComplianceTests<>)
19+
];
20+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.CRUD;
5+
using VectorData.ConformanceTests.VectorSearch;
6+
7+
namespace MongoDB.ConformanceTests;
8+
9+
public class MongoTestSuiteImplementationTests : TestSuiteImplementationTests
10+
{
11+
protected override ICollection<Type> IgnoredTestBases { get; } =
12+
[
13+
typeof(VectorSearchDistanceFunctionComplianceTests<>),
14+
typeof(VectorSearchWithFilterConformanceTests<>),
15+
typeof(DynamicDataModelConformanceTests<>),
16+
];
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.HybridSearch;
5+
using VectorData.ConformanceTests.VectorSearch;
6+
7+
namespace PgVector.ConformanceTests;
8+
9+
public class PostgresTestSuiteImplementationTests : TestSuiteImplementationTests
10+
{
11+
protected override ICollection<Type> IgnoredTestBases { get; } =
12+
[
13+
typeof(VectorSearchWithFilterConformanceTests<>),
14+
15+
// Hybrid search not supported
16+
typeof(KeywordVectorizedHybridSearchComplianceTests<>)
17+
];
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.HybridSearch;
5+
using VectorData.ConformanceTests.VectorSearch;
6+
7+
namespace Pinecone.ConformanceTests;
8+
9+
public class PineconeTestSuiteImplementationTests : TestSuiteImplementationTests
10+
{
11+
protected override ICollection<Type> IgnoredTestBases { get; } =
12+
[
13+
typeof(VectorSearchWithFilterConformanceTests<>),
14+
15+
// Hybrid search not supported
16+
typeof(KeywordVectorizedHybridSearchComplianceTests<>)
17+
];
18+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.VectorSearch;
5+
6+
namespace Qdrant.ConformanceTests;
7+
8+
public class QdrantTestSuiteImplementationTests : TestSuiteImplementationTests
9+
{
10+
protected override ICollection<Type> IgnoredTestBases { get; } =
11+
[
12+
typeof(VectorSearchDistanceFunctionComplianceTests<>),
13+
typeof(VectorSearchWithFilterConformanceTests<>)
14+
];
15+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using VectorData.ConformanceTests;
4+
using VectorData.ConformanceTests.CRUD;
5+
using VectorData.ConformanceTests.HybridSearch;
6+
using VectorData.ConformanceTests.VectorSearch;
7+
8+
namespace Redis.ConformanceTests;
9+
10+
public class RedisTestSuiteImplementationTests : TestSuiteImplementationTests
11+
{
12+
protected override ICollection<Type> IgnoredTestBases { get; } =
13+
[
14+
typeof(VectorSearchDistanceFunctionComplianceTests<>),
15+
typeof(VectorSearchWithFilterConformanceTests<>),
16+
typeof(BatchConformanceTests<>),
17+
18+
// Hybrid search not supported
19+
typeof(KeywordVectorizedHybridSearchComplianceTests<>)
20+
];
21+
}

0 commit comments

Comments
 (0)