Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public static EmbeddingCollection EmbeddingCollection(IEnumerable<Embedding> ite
return new EmbeddingCollection(
items.ToList(),
model,
@object: default,
InternalCreateEmbeddingResponseObject.List,
Comment thread
kinelski marked this conversation as resolved.
usage,
serializedAdditionalRawData: null);
}
Expand Down
37 changes: 37 additions & 0 deletions .dotnet/src/Custom/Files/OpenAIFilesModelFactory.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;

namespace OpenAI.Files;

/// <summary> Model factory for models. </summary>
public static partial class OpenAIFilesModelFactory
{
/// <summary> Initializes a new instance of <see cref="OpenAI.Files.OpenAIFileInfo"/>. </summary>
/// <returns> A new <see cref="OpenAI.Files.OpenAIFileInfo"/> instance for mocking. </returns>
public static OpenAIFileInfo OpenAIFileInfo(string id = null, long? sizeInBytes = null, DateTimeOffset createdAt = default, string filename = null, OpenAIFilePurpose purpose = default, OpenAIFileStatus status = default, string statusDetails = null)
{
return new OpenAIFileInfo(
id,
sizeInBytes,
createdAt,
filename,
@object: InternalOpenAIFileObject.File,
purpose,
status,
statusDetails,
serializedAdditionalRawData: null);
}

/// <summary> Initializes a new instance of <see cref="OpenAI.Files.OpenAIFileInfoCollection"/>. </summary>
/// <returns> A new <see cref="OpenAI.Files.OpenAIFileInfoCollection"/> instance for mocking. </returns>
public static OpenAIFileInfoCollection OpenAIFileInfoCollection(IEnumerable<OpenAIFileInfo> items = null)
{
items ??= new List<OpenAIFileInfo>();

return new OpenAIFileInfoCollection(
items.ToList(),
InternalListFilesResponseObject.List,
serializedAdditionalRawData: null);
}
}
33 changes: 33 additions & 0 deletions .dotnet/src/Custom/Models/OpenAIModelsModelFactory.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;

namespace OpenAI.Models;

/// <summary> Model factory for models. </summary>
public static partial class OpenAIModelsModelFactory
{
/// <summary> Initializes a new instance of <see cref="OpenAI.Models.OpenAIModelInfo"/>. </summary>
/// <returns> A new <see cref="OpenAI.Models.OpenAIModelInfo"/> instance for mocking. </returns>
public static OpenAIModelInfo OpenAIModelInfo(string id = null, DateTimeOffset createdAt = default, string ownedBy = null)
{
return new OpenAIModelInfo(
id,
createdAt,
InternalModelObject.Model,
ownedBy,
serializedAdditionalRawData: null);
}

/// <summary> Initializes a new instance of <see cref="OpenAI.Models.OpenAIModelInfoCollection"/>. </summary>
/// <returns> A new <see cref="OpenAI.Models.OpenAIModelInfoCollection"/> instance for mocking. </returns>
public static OpenAIModelInfoCollection OpenAIModelInfoCollection(IEnumerable<OpenAIModelInfo> items = null)
{
items ??= new List<OpenAIModelInfo>();

return new OpenAIModelInfoCollection(
InternalListModelsResponseObject.List,
items.ToList(),
serializedAdditionalRawData: null);
}
}
70 changes: 70 additions & 0 deletions .dotnet/src/Custom/Moderations/OpenAIModerationsModelFactory.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
using System.Collections.Generic;
using System.Linq;

namespace OpenAI.Moderations;

/// <summary> Model factory for models. </summary>
public static partial class OpenAIModerationsModelFactory
{
/// <summary> Initializes a new instance of <see cref="OpenAI.Moderations.ModerationCategories"/>. </summary>
/// <returns> A new <see cref="OpenAI.Moderations.ModerationCategories"/> instance for mocking. </returns>
public static ModerationCategories ModerationCategories(bool hate = default, bool hateThreatening = default, bool harassment = default, bool harassmentThreatening = default, bool selfHarm = default, bool selfHarmIntent = default, bool selfHarmInstructions = default, bool sexual = default, bool sexualMinors = default, bool violence = default, bool violenceGraphic = default)
{
return new ModerationCategories(
hate,
hateThreatening,
harassment,
harassmentThreatening,
selfHarm,
selfHarmIntent,
selfHarmInstructions,
sexual,
sexualMinors,
violence,
violenceGraphic,
serializedAdditionalRawData: null);
}

/// <summary> Initializes a new instance of <see cref="OpenAI.Moderations.ModerationCategoryScores"/>. </summary>
/// <returns> A new <see cref="OpenAI.Moderations.ModerationCategoryScores"/> instance for mocking. </returns>
public static ModerationCategoryScores ModerationCategoryScores(float hate = default, float hateThreatening = default, float harassment = default, float harassmentThreatening = default, float selfHarm = default, float selfHarmIntent = default, float selfHarmInstructions = default, float sexual = default, float sexualMinors = default, float violence = default, float violenceGraphic = default)
{
return new ModerationCategoryScores(
hate,
hateThreatening,
harassment,
harassmentThreatening,
selfHarm,
selfHarmIntent,
selfHarmInstructions,
sexual,
sexualMinors,
violence,
violenceGraphic,
serializedAdditionalRawData: null);
}

/// <summary> Initializes a new instance of <see cref="OpenAI.Moderations.ModerationCollection"/>. </summary>
/// <returns> A new <see cref="OpenAI.Moderations.ModerationCollection"/> instance for mocking. </returns>
public static ModerationCollection ModerationCollection(string id = null, string model = null, IEnumerable<ModerationResult> items = null)
{
items ??= new List<ModerationResult>();

return new ModerationCollection(
id,
model,
items.ToList(),
serializedAdditionalRawData: null);
}

/// <summary> Initializes a new instance of <see cref="OpenAI.Moderations.ModerationResult"/>. </summary>
/// <returns> A new <see cref="OpenAI.Moderations.ModerationResult"/> instance for mocking. </returns>
public static ModerationResult ModerationResult(bool flagged = default, ModerationCategories categories = null, ModerationCategoryScores categoryScores = null)
{
return new ModerationResult(
flagged,
categories,
categoryScores,
serializedAdditionalRawData: null);
}
}
213 changes: 106 additions & 107 deletions .dotnet/tests/Embeddings/OpenAIEmbeddingsModelFactoryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,114 +3,113 @@
using NUnit.Framework;
using OpenAI.Embeddings;

namespace OpenAI.Tests.Embeddings
namespace OpenAI.Tests.Embeddings;
Comment thread
kinelski marked this conversation as resolved.

[Parallelizable(ParallelScope.All)]
[Category("Smoke")]
public partial class OpenAIEmbeddingsModelFactoryTests
{
[Parallelizable(ParallelScope.All)]
[Category("Smoke")]
public partial class OpenAIEmbeddingsModelFactoryTests
[Test]
public void EmbeddingWithNoPropertiesWorks()
{
Embedding embedding = OpenAIEmbeddingsModelFactory.Embedding();

Assert.That(embedding.Index, Is.EqualTo(default(int)));
Assert.That(embedding.Vector.ToArray(), Is.Not.Null.And.Empty);
}

[Test]
public void EmbeddingWithIndexWorks()
{
[Test]
public void EmbeddingWithNoPropertiesWorks()
{
Embedding embedding = OpenAIEmbeddingsModelFactory.Embedding();

Assert.That(embedding.Index, Is.EqualTo(default(int)));
Assert.That(embedding.Vector.ToArray(), Is.Not.Null.And.Empty);
}

[Test]
public void EmbeddingWithIndexWorks()
{
int index = 10;
Embedding embedding = OpenAIEmbeddingsModelFactory.Embedding(index: index);

Assert.That(embedding.Index, Is.EqualTo(index));
Assert.That(embedding.Vector.ToArray(), Is.Not.Null.And.Empty);
}

[Test]
public void EmbeddingWithVectorWorks()
{
IEnumerable<float> vector = [ 1f, 2f, 3f ];
Embedding embedding = OpenAIEmbeddingsModelFactory.Embedding(vector: vector);

Assert.That(embedding.Index, Is.EqualTo(default(int)));
Assert.That(embedding.Vector.ToArray().SequenceEqual(vector), Is.True);
}

[Test]
public void EmbeddingCollectionWithNoPropertiesWorks()
{
EmbeddingCollection embeddingCollection = OpenAIEmbeddingsModelFactory.EmbeddingCollection();

Assert.That(embeddingCollection.Count, Is.EqualTo(0));
Assert.That(embeddingCollection.Model, Is.Null);
Assert.That(embeddingCollection.Usage, Is.Null);
}

[Test]
public void EmbeddingCollectionWithItemsWorks()
{
IEnumerable<Embedding> items = [
OpenAIEmbeddingsModelFactory.Embedding(index: 10),
OpenAIEmbeddingsModelFactory.Embedding(index: 20)
];
EmbeddingCollection embeddingCollection = OpenAIEmbeddingsModelFactory.EmbeddingCollection(items: items);

Assert.That(embeddingCollection.SequenceEqual(items), Is.True);
Assert.That(embeddingCollection.Model, Is.Null);
Assert.That(embeddingCollection.Usage, Is.Null);
}

[Test]
public void EmbeddingCollectionWithModelWorks()
{
string model = "supermodel";
EmbeddingCollection embeddingCollection = OpenAIEmbeddingsModelFactory.EmbeddingCollection(model: model);

Assert.That(embeddingCollection.Count, Is.EqualTo(0));
Assert.That(embeddingCollection.Model, Is.EqualTo(model));
Assert.That(embeddingCollection.Usage, Is.Null);
}

[Test]
public void EmbeddingCollectionWithUsageWorks()
{
EmbeddingTokenUsage usage = OpenAIEmbeddingsModelFactory.EmbeddingTokenUsage(inputTokens: 10);
EmbeddingCollection embeddingCollection = OpenAIEmbeddingsModelFactory.EmbeddingCollection(usage: usage);

Assert.That(embeddingCollection.Count, Is.EqualTo(0));
Assert.That(embeddingCollection.Model, Is.Null);
Assert.That(embeddingCollection.Usage, Is.EqualTo(usage));
}

[Test]
public void EmbeddingTokenUsageWithNoPropertiesWorks()
{
EmbeddingTokenUsage embeddingTokenUsage = OpenAIEmbeddingsModelFactory.EmbeddingTokenUsage();

Assert.That(embeddingTokenUsage.InputTokens, Is.EqualTo(default(int)));
Assert.That(embeddingTokenUsage.TotalTokens, Is.EqualTo(default(int)));
}

[Test]
public void EmbeddingTokenUsageWithInputTokensWorks()
{
int inputTokens = 10;
EmbeddingTokenUsage embeddingTokenUsage = OpenAIEmbeddingsModelFactory.EmbeddingTokenUsage(inputTokens: inputTokens);

Assert.That(embeddingTokenUsage.InputTokens, Is.EqualTo(10));
Assert.That(embeddingTokenUsage.TotalTokens, Is.EqualTo(default(int)));
}

[Test]
public void EmbeddingTokenUsageWithTotalTokensWorks()
{
int totalTokens = 10;
EmbeddingTokenUsage embeddingTokenUsage = OpenAIEmbeddingsModelFactory.EmbeddingTokenUsage(totalTokens: totalTokens);

Assert.That(embeddingTokenUsage.InputTokens, Is.EqualTo(default(int)));
Assert.That(embeddingTokenUsage.TotalTokens, Is.EqualTo(totalTokens));
}
int index = 10;
Embedding embedding = OpenAIEmbeddingsModelFactory.Embedding(index: index);

Assert.That(embedding.Index, Is.EqualTo(index));
Assert.That(embedding.Vector.ToArray(), Is.Not.Null.And.Empty);
}

[Test]
public void EmbeddingWithVectorWorks()
{
IEnumerable<float> vector = [ 1f, 2f, 3f ];
Embedding embedding = OpenAIEmbeddingsModelFactory.Embedding(vector: vector);

Assert.That(embedding.Index, Is.EqualTo(default(int)));
Assert.That(embedding.Vector.ToArray().SequenceEqual(vector), Is.True);
}

[Test]
public void EmbeddingCollectionWithNoPropertiesWorks()
{
EmbeddingCollection embeddingCollection = OpenAIEmbeddingsModelFactory.EmbeddingCollection();

Assert.That(embeddingCollection.Count, Is.EqualTo(0));
Assert.That(embeddingCollection.Model, Is.Null);
Assert.That(embeddingCollection.Usage, Is.Null);
}

[Test]
public void EmbeddingCollectionWithItemsWorks()
{
IEnumerable<Embedding> items = [
OpenAIEmbeddingsModelFactory.Embedding(index: 10),
OpenAIEmbeddingsModelFactory.Embedding(index: 20)
];
EmbeddingCollection embeddingCollection = OpenAIEmbeddingsModelFactory.EmbeddingCollection(items: items);

Assert.That(embeddingCollection.SequenceEqual(items), Is.True);
Assert.That(embeddingCollection.Model, Is.Null);
Assert.That(embeddingCollection.Usage, Is.Null);
}

[Test]
public void EmbeddingCollectionWithModelWorks()
{
string model = "supermodel";
EmbeddingCollection embeddingCollection = OpenAIEmbeddingsModelFactory.EmbeddingCollection(model: model);

Assert.That(embeddingCollection.Count, Is.EqualTo(0));
Assert.That(embeddingCollection.Model, Is.EqualTo(model));
Assert.That(embeddingCollection.Usage, Is.Null);
}

[Test]
public void EmbeddingCollectionWithUsageWorks()
{
EmbeddingTokenUsage usage = OpenAIEmbeddingsModelFactory.EmbeddingTokenUsage(inputTokens: 10);
EmbeddingCollection embeddingCollection = OpenAIEmbeddingsModelFactory.EmbeddingCollection(usage: usage);

Assert.That(embeddingCollection.Count, Is.EqualTo(0));
Assert.That(embeddingCollection.Model, Is.Null);
Assert.That(embeddingCollection.Usage, Is.EqualTo(usage));
}

[Test]
public void EmbeddingTokenUsageWithNoPropertiesWorks()
{
EmbeddingTokenUsage embeddingTokenUsage = OpenAIEmbeddingsModelFactory.EmbeddingTokenUsage();

Assert.That(embeddingTokenUsage.InputTokens, Is.EqualTo(default(int)));
Assert.That(embeddingTokenUsage.TotalTokens, Is.EqualTo(default(int)));
}

[Test]
public void EmbeddingTokenUsageWithInputTokensWorks()
{
int inputTokens = 10;
EmbeddingTokenUsage embeddingTokenUsage = OpenAIEmbeddingsModelFactory.EmbeddingTokenUsage(inputTokens: inputTokens);

Assert.That(embeddingTokenUsage.InputTokens, Is.EqualTo(10));
Assert.That(embeddingTokenUsage.TotalTokens, Is.EqualTo(default(int)));
}

[Test]
public void EmbeddingTokenUsageWithTotalTokensWorks()
{
int totalTokens = 10;
EmbeddingTokenUsage embeddingTokenUsage = OpenAIEmbeddingsModelFactory.EmbeddingTokenUsage(totalTokens: totalTokens);

Assert.That(embeddingTokenUsage.InputTokens, Is.EqualTo(default(int)));
Assert.That(embeddingTokenUsage.TotalTokens, Is.EqualTo(totalTokens));
}
}
Loading