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
9 changes: 4 additions & 5 deletions src/Mindee/Parsing/Common/PositionField.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.Text;
using System.Text.Json.Serialization;

namespace Mindee.Parsing.Common
Expand All @@ -13,25 +12,25 @@ public sealed class PositionField
/// Straight rectangle.
/// </summary>
[JsonPropertyName("bounding_box")]
public List<List<double>> BoundingBox { get; set; }
public List<List<double>> BoundingBox { get; set; } = new List<List<double>>();

/// <summary>
/// Free polygon with up to 30 vertices.
/// </summary>
[JsonPropertyName("polygon")]
public List<List<double>> Polygon { get; set; }
public List<List<double>> Polygon { get; set; } = new List<List<double>>();

/// <summary>
/// Free polygon with 4 vertices.
/// </summary>
[JsonPropertyName("quadrangle")]
public List<List<double>> Quadrangle { get; set; }
public List<List<double>> Quadrangle { get; set; } = new List<List<double>>();

/// <summary>
/// Rectangle that may be oriented (can go beyond the canvas).
/// </summary>
[JsonPropertyName("rectangle")]
public List<List<double>> Rectangle { get; set; }
public List<List<double>> Rectangle { get; set; } = new List<List<double>>();

/// <summary>
/// A prettier reprensentation of the current model values.
Expand Down
81 changes: 81 additions & 0 deletions src/Mindee/Parsing/Us/BankCheck/BankCheckV1Prediction.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using Mindee.Parsing.Common;

namespace Mindee.Parsing.Us.BankCheck
{
/// <summary>
/// The us bank check model for the v1.
/// </summary>
[Endpoint("bank_check", "1")]
public sealed class BankCheckV1Prediction : PredictionBase
{
/// <summary>
/// Payer's bank account number.
/// </summary>
[JsonPropertyName("account_number")]
public StringField AccountNumber { get; set; }

/// <summary>
/// Total including taxes.
/// </summary>
[JsonPropertyName("amount")]
public AmountField Amount { get; set; }

/// <summary>
/// Payer's bank account number.
/// </summary>
[JsonPropertyName("check_number")]
public StringField CheckNumber { get; set; }

/// <summary>
/// Check's position in the image.
/// </summary>
[JsonPropertyName("check_position")]
public PositionField CheckPosition { get; set; }

/// <summary>
/// Date the check was issued.
/// </summary>
[JsonPropertyName("date")]
public StringField IssuanceDate { get; set; }

/// <summary>
/// List of payees (full name or company name).
/// </summary>
[JsonPropertyName("payees")]
public IList<StringField> Payees { get; set; } = new List<StringField>();

/// <summary>
/// Payer's bank account routing number.
/// </summary>
[JsonPropertyName("routing_number")]
public StringField RoutingNumber { get; set; }

/// <summary>
/// Signatures' positions in the image.
/// </summary>
[JsonPropertyName("signatures_positions")]
public IList<PositionField> SignaturesPositions { get; set; } = new List<PositionField>();

/// <summary>
/// A prettier reprensentation of the current model values.
/// </summary>
public override string ToString()
{
StringBuilder result = new StringBuilder("----- US Bank Check V1 -----\n");
result.Append($"Routing number: {RoutingNumber?.Value}\n");
result.Append($"Account number: {AccountNumber?.Value}\n");
result.Append($"Check number: {CheckNumber?.Value}\n");
result.Append($"Date: {IssuanceDate?.Value}\n");
result.Append($"Amount: {Amount?.Value}\n");
result.Append($"Payees: {string.Join(", ", Payees.Select(gn => gn.Value))}\n");

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

return SummaryHelper.Clean(result.ToString());
}
}
}
36 changes: 36 additions & 0 deletions tests/Mindee.UnitTests/Parsing/Us/BankCheckV1Test.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using Mindee.Parsing;
using Mindee.Parsing.Us.BankCheck;

namespace Mindee.UnitTests.Parsing.ShippingContainer
{
[Trait("Category", "US Bank Check")]
public class BankCheckV1Test
{
[Fact]
public async Task Predict_CheckSummary()
{
var mindeeAPi = GetMindeeApiForCarteVitale();
var prediction = await mindeeAPi.PredictAsync<BankCheckV1Prediction>(ParsingTestBase.GetFakePredictParameter());

var expected = File.ReadAllText("Resources/us/bank_check/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/us/bank_check/response_v1/complete.json")
{
return ParsingTestBase.GetMindeeApi(fileName);
}
}
}