feat: begin work on creating input schema from function method info

This commit is contained in:
Stevan Freeborn
2024-06-30 12:04:26 -05:00
parent 4bf99d69dd
commit 087f012093
2 changed files with 103 additions and 0 deletions
@@ -0,0 +1,45 @@
using System.Text.Json.Nodes;
namespace AnthropicClient.Tests.Unit.Models;
public class JsonSchemaGeneratorTests
{
[Fact]
public void GenerateInputSchema_GivenFunctionWithNoParameters_ReturnsSchemaWithTypeObject()
{
var expectedSchema = new JsonObject
{
["type"] = "object"
};
var testMethod = () => true;
var function = new AnthropicFunction(testMethod.Method);
var schema = JsonSchemaGenerator.GenerateInputSchema(function);
JsonAssert.Equal(expectedSchema, schema);
}
[Fact]
public void GenerateInputSchema_GivenFunctionWithParameter_ItShouldReturnSchemaWithProperty()
{
var expectedSchema = new JsonObject()
{
["type"] = "object",
["properties"] = new JsonObject()
{
["age"] = new JsonObject()
{
["description"] = string.Empty
}
},
["required"] = new JsonArray(),
};
var testMethod = (int age) => age;
var function = new AnthropicFunction(testMethod.Method);
var schema = JsonSchemaGenerator.GenerateInputSchema(function);
JsonAssert.Equal(expectedSchema, schema);
}
}