tests: update tests to account for serialization and deserialization changes with new/modified model properties to support caching

This commit is contained in:
Stevan Freeborn
2024-08-16 09:21:43 -05:00
parent 66008717e1
commit 900a7a3549
10 changed files with 137 additions and 31 deletions
@@ -13,7 +13,9 @@ public class AnthropicEventTests : SerializationTest
""stop_sequence"": """",
""usage"": {
""input_tokens"": 472,
""output_tokens"": 2
""output_tokens"": 2,
""cache_creation_input_tokens"": 0,
""cache_read_input_tokens"": 0
},
""content"": [],
""stop_reason"": """"
@@ -70,7 +72,9 @@ public class AnthropicEventTests : SerializationTest
},
""usage"": {
""output_tokens"": 89,
""input_tokens"": 0
""input_tokens"": 0,
""cache_creation_input_tokens"": 0,
""cache_read_input_tokens"": 0
},
""type"": ""message_delta""
}
@@ -10,7 +10,9 @@ public class MessageDeltaEventDataTests : SerializationTest
},
""usage"": {
""input_tokens"": 1,
""output_tokens"": 1
""output_tokens"": 1,
""cache_creation_input_tokens"": 1,
""cache_read_input_tokens"": 1
}
}";
@@ -18,7 +20,13 @@ public class MessageDeltaEventDataTests : SerializationTest
public void Constructor_WhenCalled_ItShouldInitializeProperties()
{
var expectedDelta = new MessageDelta("max_tokens", "max_tokens");
var expectedUsage = new Usage { InputTokens = 1, OutputTokens = 1 };
var expectedUsage = new Usage
{
InputTokens = 1,
OutputTokens = 1,
CacheCreationInputTokens = 1,
CacheReadInputTokens = 1,
};
var messageDeltaEventData = new MessageDeltaEventData(expectedDelta, expectedUsage);
@@ -30,7 +38,13 @@ public class MessageDeltaEventDataTests : SerializationTest
public void JsonSerialization_WhenSerialized_ItShouldHaveExpectedShape()
{
var expectedDelta = new MessageDelta("max_tokens", "max_tokens");
var expectedUsage = new Usage { InputTokens = 1, OutputTokens = 1 };
var expectedUsage = new Usage
{
InputTokens = 1,
OutputTokens = 1,
CacheCreationInputTokens = 1,
CacheReadInputTokens = 1,
};
var messageDeltaEventData = new MessageDeltaEventData(expectedDelta, expectedUsage);
@@ -43,7 +57,13 @@ public class MessageDeltaEventDataTests : SerializationTest
public void JsonDeserialization_WhenDeserialized_ItShouldHaveExpectedValues()
{
var expectedDelta = new MessageDelta("max_tokens", "max_tokens");
var expectedUsage = new Usage { InputTokens = 1, OutputTokens = 1 };
var expectedUsage = new Usage
{
InputTokens = 1,
OutputTokens = 1,
CacheCreationInputTokens = 1,
CacheReadInputTokens = 1,
};
var messageDeltaEventData = Deserialize<MessageDeltaEventData>(_testJson);
@@ -4,7 +4,10 @@ public class MessageRequestTests : SerializationTest
{
private readonly string _testJson = @"{
""model"": ""claude-3-sonnet-20240229"",
""system"": ""test-system"",
""system"": [{
""type"": ""text"",
""text"": ""test-system""
}],
""messages"": [
{ ""role"": ""user"", ""content"": [{ ""text"": ""Hello!"", ""type"": ""text"" }] }
],
@@ -21,7 +24,10 @@ public class MessageRequestTests : SerializationTest
private readonly string _testJsonWithAnyToolChoice = @"{
""model"": ""claude-3-sonnet-20240229"",
""system"": ""test-system"",
""system"": [{
""type"": ""text"",
""text"": ""test-system""
}],
""messages"":[
{ ""role"": ""user"", ""content"": [{ ""text"": ""Hello!"", ""type"":""text"" }] }
],
@@ -38,7 +44,10 @@ public class MessageRequestTests : SerializationTest
private readonly string _testJsonWithSpecificToolChoice = @"{
""model"": ""claude-3-sonnet-20240229"",
""system"": ""test-system"",
""system"": [{
""type"": ""text"",
""text"": ""test-system""
}],
""messages"": [
{ ""role"": ""user"", ""content"": [{ ""text"": ""Hello!"", ""type"": ""text"" }] }
],
@@ -55,7 +64,10 @@ public class MessageRequestTests : SerializationTest
private readonly string _testJsonWithImageContent = @"{
""model"": ""claude-3-sonnet-20240229"",
""system"": ""test-system"",
""system"": [{
""type"": ""text"",
""text"": ""test-system""
}],
""messages"":[
{
""role"": ""user"",
@@ -80,7 +92,10 @@ public class MessageRequestTests : SerializationTest
private readonly string _testJsonWithUnknownContent = @"{
""model"": ""claude-3-sonnet-20240229"",
""system"": ""test-system"",
""system"": [{
""type"": ""text"",
""text"": ""test-system""
}],
""messages"": [{ ""role"": ""user"", ""content"": [{ ""type"": ""unknown"", ""text"": ""text"" }] }],
""max_tokens"": 512,
""metadata"": { ""test"": ""test"" },
@@ -95,7 +110,10 @@ public class MessageRequestTests : SerializationTest
private readonly string _testJsonWithToolUseContent = @"{
""model"": ""claude-3-sonnet-20240229"",
""system"": ""test-system"",
""system"": [{
""type"": ""text"",
""text"": ""test-system""
}],
""messages"": [
{
""role"": ""assistant"",
@@ -124,7 +142,10 @@ public class MessageRequestTests : SerializationTest
private readonly string _testJsonWithToolResultContent = @"{
""model"": ""claude-3-sonnet-20240229"",
""system"": ""test-system"",
""system"": [{
""type"": ""text"",
""text"": ""test-system""
}],
""messages"": [
{
""role"": ""assistant"",
@@ -307,7 +328,7 @@ public class MessageRequestTests : SerializationTest
var messageRequest = Deserialize<MessageRequest>(_testJson);
messageRequest!.Model.Should().Be(AnthropicModels.Claude3Sonnet);
messageRequest.System.Should().Be("test-system");
messageRequest.System.Should().BeNull();
messageRequest.Messages.Should().HaveCount(1);
messageRequest.MaxTokens.Should().Be(512);
messageRequest.Metadata.Should().HaveCount(1);
@@ -330,7 +351,7 @@ public class MessageRequestTests : SerializationTest
var messageRequest = Deserialize<MessageRequest>(_testJsonWithAnyToolChoice);
messageRequest!.Model.Should().Be(AnthropicModels.Claude3Sonnet);
messageRequest.System.Should().Be("test-system");
messageRequest.System.Should().BeNull();
messageRequest.Messages.Should().HaveCount(1);
messageRequest.MaxTokens.Should().Be(512);
messageRequest.Metadata.Should().HaveCount(1);
@@ -352,7 +373,7 @@ public class MessageRequestTests : SerializationTest
var messageRequest = Deserialize<MessageRequest>(_testJsonWithSpecificToolChoice);
messageRequest!.Model.Should().Be(AnthropicModels.Claude3Sonnet);
messageRequest.System.Should().Be("test-system");
messageRequest.System.Should().BeNull();
messageRequest.Messages.Should().HaveCount(1);
messageRequest.MaxTokens.Should().Be(512);
messageRequest.Metadata.Should().HaveCount(1);
@@ -387,7 +408,7 @@ public class MessageRequestTests : SerializationTest
var messageRequest = Deserialize<MessageRequest>(_testJsonWithImageContent);
messageRequest!.Model.Should().Be(AnthropicModels.Claude3Sonnet);
messageRequest.System.Should().Be("test-system");
messageRequest.System.Should().BeNull();
messageRequest.Messages.Should().HaveCount(1);
messageRequest.MaxTokens.Should().Be(512);
messageRequest.Metadata.Should().HaveCount(1);
@@ -416,7 +437,7 @@ public class MessageRequestTests : SerializationTest
var messageRequest = Deserialize<MessageRequest>(_testJsonWithToolUseContent);
messageRequest!.Model.Should().Be(AnthropicModels.Claude3Sonnet);
messageRequest.System.Should().Be("test-system");
messageRequest.System.Should().BeNull();
messageRequest.Messages.Should().HaveCount(1);
messageRequest.MaxTokens.Should().Be(512);
messageRequest.Metadata.Should().HaveCount(1);
@@ -447,7 +468,7 @@ public class MessageRequestTests : SerializationTest
var messageRequest = Deserialize<MessageRequest>(_testJsonWithToolResultContent);
messageRequest!.Model.Should().Be(AnthropicModels.Claude3Sonnet);
messageRequest.System.Should().Be("test-system");
messageRequest.System.Should().BeNull();
messageRequest.Messages.Should().HaveCount(1);
messageRequest.MaxTokens.Should().Be(512);
messageRequest.Metadata.Should().HaveCount(1);
@@ -53,7 +53,12 @@ public class MessageResponseTests : SerializationTest
""stop_reason"": ""stop reason"",
""stop_sequence"": ""stop sequence"",
""type"": ""type"",
""usage"": { ""input_tokens"": 1, ""output_tokens"": 2 },
""usage"": {
""input_tokens"": 1,
""output_tokens"": 2,
""cache_creation_input_tokens"": 0,
""cache_read_input_tokens"": 0
},
""content"": [
{ ""text"": ""text content"", ""type"": ""text"" }
]
@@ -93,7 +98,12 @@ public class MessageResponseTests : SerializationTest
""stop_reason"": ""stop reason"",
""stop_sequence"": ""stop sequence"",
""type"": ""type"",
""usage"": { ""input_tokens"": 1, ""output_tokens"": 2 },
""usage"": {
""input_tokens"": 1,
""output_tokens"": 2,
""cache_creation_input_tokens"": 0,
""cache_read_input_tokens"": 0
},
""content"": [
{ ""text"": ""text content"", ""type"": ""text"" }
]
@@ -14,7 +14,9 @@ public class MessageStartEventDataTests : SerializationTest
""stop_sequence"": """",
""usage"": {
""input_tokens"": 25,
""output_tokens"": 1
""output_tokens"": 1,
""cache_creation_input_tokens"": 0,
""cache_read_input_tokens"": 0
}
}
}";
@@ -4,7 +4,10 @@ public class StreamMessageRequestTests : SerializationTest
{
private readonly string _testJson = @"{
""model"": ""claude-3-sonnet-20240229"",
""system"": ""test-system"",
""system"": [{
""type"": ""text"",
""text"": ""test-system""
}],
""messages"": [
{ ""role"": ""user"", ""content"": [{ ""text"": ""Hello!"", ""type"": ""text"" }] }
],
@@ -178,7 +181,7 @@ public class StreamMessageRequestTests : SerializationTest
var messageRequest = Deserialize<StreamMessageRequest>(_testJson);
messageRequest!.Model.Should().Be(AnthropicModels.Claude3Sonnet);
messageRequest.System.Should().Be("test-system");
messageRequest.System.Should().BeNull();
messageRequest.Messages.Should().HaveCount(1);
messageRequest.MaxTokens.Should().Be(512);
messageRequest.Metadata.Should().HaveCount(1);
@@ -7,26 +7,39 @@ public class UsageTests : SerializationTest
{
var expectedInputTokens = 1;
var expectedOutputTokens = 2;
var expectedCacheCreationInputTokens = 3;
var expectedCacheReadInputTokens = 4;
var usage = new Usage
{
InputTokens = expectedInputTokens,
OutputTokens = expectedOutputTokens
OutputTokens = expectedOutputTokens,
CacheCreationInputTokens = expectedCacheCreationInputTokens,
CacheReadInputTokens = expectedCacheReadInputTokens
};
usage.InputTokens.Should().Be(expectedInputTokens);
usage.OutputTokens.Should().Be(expectedOutputTokens);
usage.CacheCreationInputTokens.Should().Be(expectedCacheCreationInputTokens);
usage.CacheReadInputTokens.Should().Be(expectedCacheReadInputTokens);
}
[Fact]
public void JsonSerialization_WhenCalled_ItShouldSerializeCorrectly()
{
var expectedJson = @"{ ""input_tokens"": 1, ""output_tokens"": 2 }";
var expectedJson = @"{
""input_tokens"": 1,
""output_tokens"": 2,
""cache_creation_input_tokens"": 3,
""cache_read_input_tokens"": 4
}";
var usage = new Usage
{
InputTokens = 1,
OutputTokens = 2
OutputTokens = 2,
CacheCreationInputTokens = 3,
CacheReadInputTokens = 4
};
var actual = Serialize(usage);
@@ -37,11 +50,18 @@ public class UsageTests : SerializationTest
[Fact]
public void JsonDeserialization_WhenCalled_ItShouldDeserializeCorrectly()
{
var json = @"{ ""input_tokens"": 1, ""output_tokens"": 2 }";
var json = @"{
""input_tokens"": 1,
""output_tokens"": 2,
""cache_creation_input_tokens"": 3,
""cache_read_input_tokens"": 4
}";
var usage = Deserialize<Usage>(json);
usage!.InputTokens.Should().Be(1);
usage.OutputTokens.Should().Be(2);
usage.CacheCreationInputTokens.Should().Be(3);
usage.CacheReadInputTokens.Should().Be(4);
}
}