From 4f75a521bff2bbf76e1324f8728973e6358ff84d Mon Sep 17 00:00:00 2001 From: Kvin Date: Thu, 15 Dec 2022 17:58:29 +0100 Subject: [PATCH] feat: Updating Passport V1 summary --- .../Parsing/Passport/PassportV1Prediction.cs | 20 +++++++++--- .../Parsing/Passport/PassportV1Test.cs | 31 ++++++++++++++++--- tests/resources | 2 +- 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/Mindee/Parsing/Passport/PassportV1Prediction.cs b/src/Mindee/Parsing/Passport/PassportV1Prediction.cs index d558110c..35479695 100644 --- a/src/Mindee/Parsing/Passport/PassportV1Prediction.cs +++ b/src/Mindee/Parsing/Passport/PassportV1Prediction.cs @@ -72,6 +72,11 @@ public sealed class PassportV1Prediction : PredictionBase [JsonPropertyName("mrz2")] public StringField Mrz2 { get; set; } + /// + /// Combine the MRZ lines. + /// + public string Mrz => $"{Mrz1.Value}{Mrz2.Value}"; + /// /// The surname of the person. /// @@ -79,12 +84,18 @@ public sealed class PassportV1Prediction : PredictionBase public StringField Surname { get; set; } /// - /// + /// The full name. + /// + public string FullName => $"{string.Join(" ", GivenNames.Select(gn => gn.Value))} {Surname.Value}"; + + /// + /// /// /// public override string ToString() { - StringBuilder result = new StringBuilder("-----Passport data-----\n"); + StringBuilder result = new StringBuilder("----- Passport V1 -----\n"); + result.Append($"Full name: {FullName}\n"); result.Append($"Given names: {string.Join(" ", GivenNames.Select(gn => gn.Value))}\n"); result.Append($"Surname: {Surname.Value}\n"); result.Append($"Country: {Country.Value}\n"); @@ -94,10 +105,11 @@ public override string ToString() result.Append($"Expiry date: {ExpiryDate.Value}\n"); result.Append($"MRZ 1: {Mrz1.Value}\n"); result.Append($"MRZ 2: {Mrz2.Value}\n"); + result.Append($"MRZ: {Mrz}\n"); - result.Append("----------------------"); + result.Append("----------------------\n"); - return result.ToString(); + return SummaryHelper.Clean(result.ToString()); } } } diff --git a/tests/Mindee.UnitTests/Parsing/Passport/PassportV1Test.cs b/tests/Mindee.UnitTests/Parsing/Passport/PassportV1Test.cs index 8fb2fd4c..4e678895 100644 --- a/tests/Mindee.UnitTests/Parsing/Passport/PassportV1Test.cs +++ b/tests/Mindee.UnitTests/Parsing/Passport/PassportV1Test.cs @@ -6,15 +6,36 @@ namespace Mindee.UnitTests.Parsing.Passport [Trait("Category", "Passport V1")] public class PassportV1Test { - [Fact(Skip = "Waiting for the summary format update.")] - public async Task Execute_WithPassportData_MustSuccess() + [Fact] + public async Task Predict_CheckSummary() { - var mindeeApi = GetMindeeApiForPassport(); - var prediction = await mindeeApi.PredictAsync(ParsingTestBase.GetFakePredictParameter()); + var mindeeAPi = GetMindeeApiForPassport(); + var prediction = await mindeeAPi.PredictAsync(ParsingTestBase.GetFakePredictParameter()); var expected = File.ReadAllText("Resources/passport/response_v1/doc_to_string.txt"); - Assert.Equal(expected, prediction.ToString()); + var indexFilename = expected.IndexOf("Filename"); + var indexEOL = expected.IndexOf("\n", indexFilename); + + Assert.Equal( + expected.Remove(indexFilename, indexEOL - indexFilename + 1), + prediction.Inference.Prediction.ToString()); + } + + [Fact] + public async Task Predict_CheckSummary_WithMultiplePages() + { + var mindeeAPi = GetMindeeApiForPassport(); + var prediction = await mindeeAPi.PredictAsync(ParsingTestBase.GetFakePredictParameter()); + + var expected = File.ReadAllText("Resources/passport/response_v1/page0_to_string.txt"); + + var indexFilename = expected.IndexOf("Filename"); + var indexEOL = expected.IndexOf("\n", indexFilename); + + Assert.Equal( + expected.Remove(indexFilename, indexEOL - indexFilename + 1), + prediction.Inference.Pages.First().Prediction.ToString()); } [Fact] diff --git a/tests/resources b/tests/resources index 7290bb01..b1f50651 160000 --- a/tests/resources +++ b/tests/resources @@ -1 +1 @@ -Subproject commit 7290bb01ace842b90e150ee68f533776d7527471 +Subproject commit b1f506519ab10714cc19223457697fd09099a467