commits
tags
using Remiss.Core.Pdf;
using Xunit;
namespace Remiss.Core.Tests;
public sealed class OcrContractTests
{
private const string Id = "SE2321000131-E000000000001";
[Fact]
public void FormatHsaIdLine_usesTheAgreedLabel()
{
Assert.Equal("HSA-ID: " + Id, OcrContract.FormatHsaIdLine(" " + Id + " "));
}
[Fact]
public void TryParseHsaId_roundTripsTheRenderedLine()
{
Assert.True(OcrContract.TryParseHsaId(OcrContract.FormatHsaIdLine(Id), out var parsed));
Assert.Equal(Id, parsed);
}
[Theory]
[InlineData("REMISS\nHSA-ID: SE2321000131-E000000000001\nMottagning: Hud SU", "SE2321000131-E000000000001")]
[InlineData("hsa id SE2321000131-E000000000001", "SE2321000131-E000000000001")] // tappat kolon + bindestreck
[InlineData("HSA-ID: SE2321000131 - E000000000001", "SE2321000131-E000000000001")] // OCR-blanksteg i id:t
[InlineData("brus...\r\n HSA-ID:SE2321000131-E000000000001 \r\nmer brus", "SE2321000131-E000000000001")]
public void TryParseHsaId_toleratesCommonOcrNoise(string ocrText, string expected)
{
Assert.True(OcrContract.TryParseHsaId(ocrText, out var parsed));
Assert.Equal(expected, parsed);
}
[Theory]
[InlineData("")]
[InlineData("En helt vanlig textrad utan id")]
[InlineData("HSA-ID:")]
public void TryParseHsaId_returnsFalseWhenNothingToFind(string ocrText)
{
Assert.False(OcrContract.TryParseHsaId(ocrText, out _));
}
}