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
@@ -0,0 +1,46 @@
using System.Text;
using System.Text.Json.Serialization;
using Mindee.Parsing.Common;

namespace Mindee.Parsing.ShippingContainer
{
/// <summary>
/// The shipping container model for the v1.
/// </summary>
[Endpoint("shipping_containers", "1")]
public sealed class ShippingContainerV1Prediction : PredictionBase
{
/// <summary>
/// ISO 6346 code for container owner prefix + equipment identifier.
/// </summary>
[JsonPropertyName("owner")]
public StringField Owner { get; set; }

/// <summary>
/// ISO 6346 code for container serial number (6+1 digits).
/// </summary>
[JsonPropertyName("serial_number")]
public StringField SerialNumber { get; set; }

/// <summary>
/// ISO 6346 code for container length, height and type.
/// </summary>
[JsonPropertyName("size_type")]
public StringField SizeType { get; set; }

/// <summary>
/// A prettier reprensentation of the current model values.
/// </summary>
public override string ToString()
{
StringBuilder result = new StringBuilder("----- Shipping Container V1 -----\n");
result.Append($"Owner: {Owner.Value}\n");
result.Append($"Serial number: {SerialNumber.Value}\n");
result.Append($"Size and type: {SizeType.Value}\n");

result.Append("----------------------\n");

return SummaryHelper.Clean(result.ToString());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using Mindee.Parsing;
using Mindee.Parsing.ShippingContainer;

namespace Mindee.UnitTests.Parsing.ShippingContainer
{
[Trait("Category", "Shipping Container")]
public class ShippingContainerV1Test
{
[Fact]
public async Task Predict_CheckSummary()
{
var mindeeAPi = GetMindeeApiForCarteVitale();
var prediction = await mindeeAPi.PredictAsync<ShippingContainerV1Prediction>(ParsingTestBase.GetFakePredictParameter());

var expected = File.ReadAllText("Resources/shipping_container/response_v1/doc_to_string.txt");

Assert.Equal(
CleaningResult(expected),
prediction.Inference.Prediction.ToString());
}

private string CleaningResult(string expectedSummary)
{
var indexFilename = expectedSummary.IndexOf("Filename");
var indexFilenameEOL = expectedSummary.IndexOf("\n", indexFilename);
string cleanedSummary = expectedSummary.Remove(indexFilename, indexFilenameEOL - indexFilename + 1);

return cleanedSummary;
}

private MindeeApi GetMindeeApiForCarteVitale(string fileName = "Resources/shipping_container/response_v1/complete.json")
{
return ParsingTestBase.GetMindeeApi(fileName);
}
}
}