tests: add test for serializing system property with correct expected value based on whether given system messages or just a system message.

This commit is contained in:
Stevan Freeborn
2024-08-18 11:37:19 -05:00
parent e47095e03d
commit f6460e99ee
@@ -322,6 +322,137 @@ public class MessageRequestTests : SerializationTest
JsonAssert.Equal(_testJson, actual); JsonAssert.Equal(_testJson, actual);
} }
[Fact]
public void JsonSerialization_WhenSerializedAndSystemMessagesAndSystemAreNull_ItShouldNotHaveSystemProperty()
{
var messageRequest = new MessageRequest(
model: AnthropicModels.Claude3Haiku,
messages: [
new()
{
Role = MessageRole.User,
Content = [new TextContent("Hello!")]
}
]
);
var expected = @"{
""model"": ""claude-3-haiku-20240307"",
""messages"": [
{
""role"": ""user"",
""content"": [
{
""text"": ""Hello!"",
""type"": ""text""
}
]
}
],
""max_tokens"": 1024,
""stop_sequences"": [],
""temperature"": 0.0,
""stream"": false
}";
var actual = Serialize(messageRequest);
JsonAssert.Equal(expected, actual);
}
[Fact]
public void JsonSerialization_WhenSerializedAndSystemMessagesAreProvided_ItShouldUseSystemMessagesForHaveSystemProperty()
{
var messageRequest = new MessageRequest(
model: AnthropicModels.Claude3Haiku,
messages: [
new()
{
Role = MessageRole.User,
Content = [new TextContent("Hello!")]
}
],
systemMessages: [
new TextContent("You are a helpful assistant.")
],
system: "test-system"
);
var expected = @"{
""model"": ""claude-3-haiku-20240307"",
""system"": [
{
""text"": ""You are a helpful assistant."",
""type"": ""text""
}
],
""messages"": [
{
""role"": ""user"",
""content"": [
{
""text"": ""Hello!"",
""type"": ""text""
}
]
}
],
""max_tokens"": 1024,
""stop_sequences"": [],
""temperature"": 0.0,
""stream"": false
}";
var actual = Serialize(messageRequest);
JsonAssert.Equal(expected, actual);
}
[Fact]
public void JsonSerialization_WhenSerializedAndSystemMessageIsProvided_ItShouldUseSystemMessageForHaveSystemProperty()
{
var messageRequest = new MessageRequest(
model: AnthropicModels.Claude3Haiku,
messages: [
new()
{
Role = MessageRole.User,
Content = [new TextContent("Hello!")]
}
],
system: "test-system"
);
var expected = @"{
""model"": ""claude-3-haiku-20240307"",
""system"": [
{
""text"": ""test-system"",
""type"": ""text""
}
],
""messages"": [
{
""role"": ""user"",
""content"": [
{
""text"": ""Hello!"",
""type"": ""text""
}
]
}
],
""max_tokens"": 1024,
""stop_sequences"": [],
""temperature"": 0.0,
""stream"": false
}";
var actual = Serialize(messageRequest);
JsonAssert.Equal(expected, actual);
}
[Fact] [Fact]
public void JsonDeserialization_WhenDeserialized_ItShouldHaveExpectedShape() public void JsonDeserialization_WhenDeserialized_ItShouldHaveExpectedShape()
{ {