From 28587fc6dfb575c87f3f6a6573a34c034f3182c0 Mon Sep 17 00:00:00 2001 From: Frank Tovar Date: Sat, 14 Mar 2026 14:34:27 +0100 Subject: [PATCH] Fix critical importer row and column boundary parsing --- docs/critical_import_tool.md | 3 +- src/RolemasterDb.App/rolemaster.db | Bin 3170304 -> 3211264 bytes ...dardCriticalTableParserIntegrationTests.cs | 111 ++++++++++ .../Parsing/CriticalTableParserSupport.cs | 200 ++++++++++++++++-- .../GroupedVariantCriticalTableParser.cs | 10 +- .../Parsing/StandardCriticalTableParser.cs | 5 +- .../VariantColumnCriticalTableParser.cs | 5 +- 7 files changed, 302 insertions(+), 32 deletions(-) diff --git a/docs/critical_import_tool.md b/docs/critical_import_tool.md index 3971e3e..eb8b74d 100644 --- a/docs/critical_import_tool.md +++ b/docs/critical_import_tool.md @@ -238,9 +238,10 @@ The currently enabled phase-3 table set is: Current phase-3 notes: - header detection now tolerates minor `top` misalignment across the `A-E` header glyphs +- first-row body parsing can now begin slightly above the first roll-band label when the PDF places prose between the header row and the label, which prevents clipped `01-05` cells such as `Mana.pdf` - row boundaries can snap to the last affix-to-prose transition between adjacent roll labels when midpoint slicing would leak into the next row - affix symbols are learned from the footer legend before body parsing, so symbol-only affix fragments are classified correctly -- affix fragments that cross a column boundary in the XML can be split on hard internal spacing before column assignment, which is required for `Mana.pdf` +- cross-column text fragments can now be split at geometry-aligned whitespace boundaries before column assignment, while affix fragments still split on hard internal spacing - footer page numbers are filtered out before body parsing - validation allows a single contiguous affix block either before or after prose diff --git a/src/RolemasterDb.App/rolemaster.db b/src/RolemasterDb.App/rolemaster.db index 598b2edbd19c8c7a0e34cc9fe755c735ec28fc16..d34c0bf6beefe1147817f3928a732b36c0059fbf 100644 GIT binary patch delta 165822 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

n%4=MlmESnMaJ;5Ny=aS0d_(p7 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 delta 121959 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≥Kfn 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 Li80Saj!FLwQIyRH diff --git a/src/RolemasterDb.ImportTool.Tests/StandardCriticalTableParserIntegrationTests.cs b/src/RolemasterDb.ImportTool.Tests/StandardCriticalTableParserIntegrationTests.cs index 3c1b018..8cdc803 100644 --- a/src/RolemasterDb.ImportTool.Tests/StandardCriticalTableParserIntegrationTests.cs +++ b/src/RolemasterDb.ImportTool.Tests/StandardCriticalTableParserIntegrationTests.cs @@ -201,6 +201,107 @@ public sealed class StandardCriticalTableParserIntegrationTests Assert.DoesNotContain('\uF06C', row100C.DescriptionText); } + [Fact] + public async Task Arcane_aether_first_row_keeps_c_and_d_text_in_separate_columns() + { + var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "arcane-aether", StringComparison.Ordinal)); + var parseResult = await LoadParseResultAsync(entry); + var row01C = parseResult.Table.Results.Single(item => + item.GroupKey is null && + string.Equals(item.RollBandLabel, "01-05", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "C", StringComparison.Ordinal)); + var row01D = parseResult.Table.Results.Single(item => + item.GroupKey is null && + string.Equals(item.RollBandLabel, "01-05", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "D", StringComparison.Ordinal)); + + Assert.Equal("Ooooh. That's the way to frighten him", row01C.DescriptionText); + Assert.Equal("That looked like it hurt. It didn't.", row01D.DescriptionText); + } + + [Fact] + public async Task Arcane_aether_31_40_keeps_a_and_b_text_in_separate_columns() + { + var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "arcane-aether", StringComparison.Ordinal)); + var parseResult = await LoadParseResultAsync(entry); + var row31A = parseResult.Table.Results.Single(item => + item.GroupKey is null && + string.Equals(item.RollBandLabel, "31-40", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "A", StringComparison.Ordinal)); + var row31B = parseResult.Table.Results.Single(item => + item.GroupKey is null && + string.Equals(item.RollBandLabel, "31-40", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "B", StringComparison.Ordinal)); + + Assert.Equal("Burns cause foe to bring up his guard.", row31A.DescriptionText); + Assert.Equal("Confused foe brings up his guard. He loses initiative for two rounds.", row31B.DescriptionText); + } + + [Fact] + public async Task Arcane_aether_41_50_keeps_d_and_e_text_in_separate_columns() + { + var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "arcane-aether", StringComparison.Ordinal)); + var parseResult = await LoadParseResultAsync(entry); + var row41D = parseResult.Table.Results.Single(item => + item.GroupKey is null && + string.Equals(item.RollBandLabel, "41-50", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "D", StringComparison.Ordinal)); + var row41E = parseResult.Table.Results.Single(item => + item.GroupKey is null && + string.Equals(item.RollBandLabel, "41-50", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "E", StringComparison.Ordinal)); + + Assert.Equal("Foe is spun by a strike to his shoulder.", row41D.DescriptionText); + Assert.Equal("Powerful blast knocks foe back three steps and cause him to drop all objects.", row41E.DescriptionText); + } + + [Fact] + public async Task Mana_first_row_keeps_all_five_columns_populated() + { + var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "mana", StringComparison.Ordinal)); + var parseResult = await LoadParseResultAsync(entry); + + Assert.Equal("Lots of fireworks, but little effect.", FindResult(parseResult, "01-05", "A").DescriptionText); + Assert.Equal("Somewhere a bell tolls.", FindResult(parseResult, "01-05", "B").DescriptionText); + Assert.Equal("Weak blast.", FindResult(parseResult, "01-05", "C").DescriptionText); + Assert.Equal("Foe dances around your blast.", FindResult(parseResult, "01-05", "D").DescriptionText); + Assert.Equal("Foe does damage trying to dodge.", FindResult(parseResult, "01-05", "E").DescriptionText); + } + + [Fact] + public async Task Arcane_nether_first_row_keeps_b_column_populated() + { + var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "arcane-nether", StringComparison.Ordinal)); + var parseResult = await LoadParseResultAsync(entry); + + Assert.Equal("Glancing blow.", FindResult(parseResult, "01-05", "B").DescriptionText); + } + + [Fact] + public async Task Krush_36_45_keeps_a_b_and_c_content_in_separate_columns() + { + var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "krush", StringComparison.Ordinal)); + var parseResult = await LoadParseResultAsync(entry); + + Assert.Equal("Bust foe's shin. You have initiative.", FindResult(parseResult, "36-45", "A").DescriptionText); + Assert.Equal("Blow to foe's left calf. You gain initiative.", FindResult(parseResult, "36-45", "B").DescriptionText); + Assert.Equal("Catch foe in lower leg. You gain initiative, while foe regains footing.", FindResult(parseResult, "36-45", "C").DescriptionText); + } + + [Fact] + public async Task Super_large_creature_weapon_99_100_holy_arms_does_not_capture_previous_row_text() + { + var entry = LoadManifest().Tables.Single(item => string.Equals(item.Slug, "super_large_creature_weapon", StringComparison.Ordinal)); + var parseResult = await LoadParseResultAsync(entry); + var row99HolyArms = parseResult.Table.Results.Single(item => + item.GroupKey is null && + string.Equals(item.RollBandLabel, "99-100", StringComparison.Ordinal) && + string.Equals(item.ColumnKey, "HOLY_ARMS", StringComparison.Ordinal)); + + Assert.StartsWith("Strike through foe's heart kills him instantly.", row99HolyArms.DescriptionText, StringComparison.Ordinal); + Assert.DoesNotContain("all allies get (+10)", row99HolyArms.DescriptionText, StringComparison.OrdinalIgnoreCase); + } + [Fact] public async Task Mana_affix_boundaries_keep_71_75_a_and_b_separate() { @@ -551,6 +652,16 @@ public sealed class StandardCriticalTableParserIntegrationTests private static CriticalImportManifest LoadManifest() => new CriticalImportManifestLoader().Load(Path.Combine(GetRepositoryRoot(), "sources", "critical-import-manifest.json")); + private static ParsedCriticalResult FindResult( + CriticalTableParseResult parseResult, + string rollBandLabel, + string columnKey, + string? groupKey = null) => + parseResult.Table.Results.Single(item => + string.Equals(item.GroupKey, groupKey, StringComparison.Ordinal) && + string.Equals(item.RollBandLabel, rollBandLabel, StringComparison.Ordinal) && + string.Equals(item.ColumnKey, columnKey, StringComparison.Ordinal)); + private static string GetArtifactCacheRoot() { var cacheRoot = Path.Combine(Path.GetTempPath(), "RolemasterDb.ImportTool.Tests"); diff --git a/src/RolemasterDb.ImportTool/Parsing/CriticalTableParserSupport.cs b/src/RolemasterDb.ImportTool/Parsing/CriticalTableParserSupport.cs index acc92d3..f50ad60 100644 --- a/src/RolemasterDb.ImportTool/Parsing/CriticalTableParserSupport.cs +++ b/src/RolemasterDb.ImportTool/Parsing/CriticalTableParserSupport.cs @@ -9,15 +9,17 @@ namespace RolemasterDb.ImportTool.Parsing; internal static class CriticalTableParserSupport { internal const int HeaderToBodyMinimumGap = 20; + internal const int HeaderToRowLabelMinimumGap = 10; internal const int FooterLabelExclusionGap = 15; internal const int FooterPageNumberExclusionGap = 80; internal const int RowLabelDuplicateTolerance = 15; internal const int TopGroupingTolerance = 2; + internal const int BoundarySplitSearchRadiusChars = 12; private static readonly Regex MultiFragmentSplitRegex = new(@"\S(?:.*?\S)?(?=(?:\s{2,}|$))", RegexOptions.Compiled); - private static readonly Regex SentenceFragmentSplitRegex = new(@"\S.*?(?:[.!?](?:['"")\]]*)|$)", RegexOptions.Compiled); private static readonly Regex NumericAffixLineRegex = new(@"^\d+(?:H|∑|∏|π|∫|\s*[–-])", RegexOptions.Compiled); private static readonly Regex StandaloneModifierAffixLineRegex = new(@"^(?:\d+)?\((?:\+|-|–)\d+\)$", RegexOptions.Compiled); + private static readonly Regex BoundaryBonusLineRegex = new(@"^(?:all allies|all foe's allies|all foes|all opponents)\b", RegexOptions.IgnoreCase | RegexOptions.Compiled); internal static List LoadFragments(string xmlContent) { @@ -405,7 +407,7 @@ internal static class CriticalTableParserSupport .ToList(); var isAffixLike = columnTexts.Count > 0 && - columnTexts.All(text => IsAffixLikeLine(text, affixLegendSymbols)); + columnTexts.All(text => IsAffixLikeLine(text, affixLegendSymbols) || IsBoundaryBonusLine(text)); bodyLines.Add((lineFragments[0].Top, isAffixLike)); } @@ -448,6 +450,20 @@ internal static class CriticalTableParserSupport .Select((item, index) => new RowAnchor(NormalizeRollBandLabel(item.Text), item.Top, index + 1)) .ToList(); + internal static int ResolveBodyStartTop(int headerTop, IReadOnlyList rowAnchors) + { + if (rowAnchors.Count == 0) + { + return headerTop + HeaderToBodyMinimumGap; + } + + return Math.Min( + headerTop + HeaderToBodyMinimumGap, + Math.Max( + headerTop + HeaderToRowLabelMinimumGap, + rowAnchors[0].Top - HeaderToRowLabelMinimumGap - TopGroupingTolerance)); + } + internal static List BuildBodyFragments( IReadOnlyList fragments, int bodyStartTop, @@ -618,12 +634,30 @@ internal static class CriticalTableParserSupport IReadOnlyList<(string Key, double CenterX)> columnCenters, IReadOnlySet affixLegendSymbols) { - if (!TryGetBoundaryCrossingPattern(fragment, columnCenters, affixLegendSymbols, out var splitPattern)) + if (!CrossesColumnBoundary(fragment, columnCenters)) { return [fragment]; } - var matches = splitPattern.Matches(fragment.Text); + if (IsAffixLikeLine(fragment.Text, affixLegendSymbols) && + fragment.Text.Contains(" ", StringComparison.Ordinal)) + { + return BuildSplitFragmentsFromMatches(fragment, MultiFragmentSplitRegex.Matches(fragment.Text), columnCenters); + } + + if (TrySplitProseFragmentAtBoundaries(fragment, columnCenters, out var splitFragments)) + { + return splitFragments; + } + + return [fragment]; + } + + private static IReadOnlyList BuildSplitFragmentsFromMatches( + XmlTextFragment fragment, + MatchCollection matches, + IReadOnlyList<(string Key, double CenterX)> columnCenters) + { if (matches.Count < 2) { return [fragment]; @@ -668,34 +702,158 @@ internal static class CriticalTableParserSupport : [fragment]; } - private static bool TryGetBoundaryCrossingPattern( + private static bool TrySplitProseFragmentAtBoundaries( XmlTextFragment fragment, IReadOnlyList<(string Key, double CenterX)> columnCenters, - IReadOnlySet affixLegendSymbols, - out Regex splitPattern) + out IReadOnlyList splitFragments) { - splitPattern = null!; + splitFragments = null!; - if (!CrossesColumnBoundary(fragment, columnCenters)) + var boundaryIndexes = FindBoundarySplitIndexes(fragment, columnCenters); + if (boundaryIndexes.Count == 0) { return false; } - if (IsAffixLikeLine(fragment.Text, affixLegendSymbols) && - fragment.Text.Contains(" ", StringComparison.Ordinal)) + var segments = new List(); + var segmentStart = 0; + var characterWidth = fragment.Width / (double)Math.Max(fragment.Text.Length, 1); + + foreach (var splitIndex in boundaryIndexes) { - splitPattern = MultiFragmentSplitRegex; - return true; + var segment = CreateFragmentSegment(fragment, segmentStart, splitIndex - segmentStart, characterWidth); + if (segment is not null) + { + segments.Add(segment); + } + + segmentStart = splitIndex; } - if (!IsAffixLikeLine(fragment.Text, affixLegendSymbols) && - CountSentenceLikeSegments(fragment.Text) >= 2) + var trailingSegment = CreateFragmentSegment(fragment, segmentStart, fragment.Text.Length - segmentStart, characterWidth); + if (trailingSegment is not null) { - splitPattern = SentenceFragmentSplitRegex; - return true; + segments.Add(trailingSegment); } - return false; + if (segments.Count < 2) + { + return false; + } + + splitFragments = segments; + return true; + } + + private static List FindBoundarySplitIndexes( + XmlTextFragment fragment, + IReadOnlyList<(string Key, double CenterX)> columnCenters) + { + var characterWidth = fragment.Width / (double)Math.Max(fragment.Text.Length, 1); + var fragmentRight = fragment.Left + fragment.Width; + var splitIndexes = new List(); + var minimumIndex = 1; + + for (var index = 0; index < columnCenters.Count - 1; index++) + { + var boundary = (columnCenters[index].CenterX + columnCenters[index + 1].CenterX) / 2.0; + if (fragment.Left >= boundary || fragmentRight <= boundary) + { + continue; + } + + var targetIndex = (int)Math.Round((boundary - fragment.Left) / characterWidth); + var splitIndex = FindNearestWhitespaceSplitIndex(fragment.Text, targetIndex, minimumIndex); + if (splitIndex is null) + { + return []; + } + + splitIndexes.Add(splitIndex.Value); + minimumIndex = splitIndex.Value + 1; + } + + return splitIndexes; + } + + private static int? FindNearestWhitespaceSplitIndex(string text, int targetIndex, int minimumIndex) + { + var start = Math.Max(minimumIndex, targetIndex - BoundarySplitSearchRadiusChars); + var end = Math.Min(text.Length - 1, targetIndex + BoundarySplitSearchRadiusChars); + int? bestIndex = null; + var bestDistance = int.MaxValue; + + for (var index = start; index <= end; index++) + { + if (!char.IsWhiteSpace(text[index])) + { + continue; + } + + var candidate = index; + while (candidate < text.Length && char.IsWhiteSpace(text[candidate])) + { + candidate++; + } + + if (candidate <= minimumIndex || candidate >= text.Length) + { + continue; + } + + var distance = Math.Abs(candidate - targetIndex); + if (distance >= bestDistance) + { + continue; + } + + bestDistance = distance; + bestIndex = candidate; + } + + return bestIndex; + } + + private static XmlTextFragment? CreateFragmentSegment( + XmlTextFragment fragment, + int startIndex, + int length, + double characterWidth) + { + if (length <= 0) + { + return null; + } + + var rawSegment = fragment.Text.Substring(startIndex, length); + var trimmedStart = 0; + while (trimmedStart < rawSegment.Length && char.IsWhiteSpace(rawSegment[trimmedStart])) + { + trimmedStart++; + } + + var trimmedEnd = rawSegment.Length - 1; + while (trimmedEnd >= trimmedStart && char.IsWhiteSpace(rawSegment[trimmedEnd])) + { + trimmedEnd--; + } + + if (trimmedEnd < trimmedStart) + { + return null; + } + + var actualStart = startIndex + trimmedStart; + var actualLength = trimmedEnd - trimmedStart + 1; + var segmentText = CollapseWhitespace(fragment.Text.Substring(actualStart, actualLength)); + + return new XmlTextFragment( + fragment.PageNumber, + fragment.Top, + fragment.Left + (int)Math.Round(characterWidth * actualStart), + Math.Max(1, (int)Math.Round(characterWidth * actualLength)), + fragment.Height, + segmentText); } private static bool CrossesColumnBoundary( @@ -716,10 +874,8 @@ internal static class CriticalTableParserSupport return false; } - private static int CountSentenceLikeSegments(string text) => - SentenceFragmentSplitRegex.Matches(text) - .Select(match => CollapseWhitespace(match.Value)) - .Count(value => !string.IsNullOrWhiteSpace(value)); + private static bool IsBoundaryBonusLine(string text) => + BoundaryBonusLineRegex.IsMatch(text.Trim()); private static void AddLegendMatch( IDictionary symbolEffects, diff --git a/src/RolemasterDb.ImportTool/Parsing/GroupedVariantCriticalTableParser.cs b/src/RolemasterDb.ImportTool/Parsing/GroupedVariantCriticalTableParser.cs index fb759e2..e521d9e 100644 --- a/src/RolemasterDb.ImportTool/Parsing/GroupedVariantCriticalTableParser.cs +++ b/src/RolemasterDb.ImportTool/Parsing/GroupedVariantCriticalTableParser.cs @@ -32,10 +32,9 @@ public sealed class GroupedVariantCriticalTableParser }) .ToList(); - var bodyStartTop = Math.Max( - groupHeaders.Max(item => item.Top), - columnHeaders.Max(item => item.Top)) - + CriticalTableParserSupport.HeaderToBodyMinimumGap; + var headerTop = Math.Max( + groupHeaders.Max(item => item.Top), + columnHeaders.Max(item => item.Top)); var keyTop = CriticalTableParserSupport.FindKeyTop(fragments); var affixLegend = CriticalTableParserSupport.ParseAffixLegend(fragments, keyTop); var affixLegendSymbols = affixLegend.ClassificationSymbols; @@ -43,9 +42,10 @@ public sealed class GroupedVariantCriticalTableParser var rowLabelFragments = CriticalTableParserSupport.FindRowLabelFragments( fragments, leftCutoff, - bodyStartTop, + headerTop + CriticalTableParserSupport.HeaderToRowLabelMinimumGap, keyTop); var rowAnchors = CriticalTableParserSupport.CreateRowAnchors(rowLabelFragments); + var bodyStartTop = CriticalTableParserSupport.ResolveBodyStartTop(headerTop, rowAnchors); if (rowAnchors.Count == 0) { diff --git a/src/RolemasterDb.ImportTool/Parsing/StandardCriticalTableParser.cs b/src/RolemasterDb.ImportTool/Parsing/StandardCriticalTableParser.cs index df85985..50c975f 100644 --- a/src/RolemasterDb.ImportTool/Parsing/StandardCriticalTableParser.cs +++ b/src/RolemasterDb.ImportTool/Parsing/StandardCriticalTableParser.cs @@ -14,7 +14,7 @@ public sealed class StandardCriticalTableParser .Select(item => (Key: item.Text.ToUpperInvariant(), CenterX: item.CenterX)) .ToList(); - var bodyStartTop = headerFragments.Max(item => item.Top) + CriticalTableParserSupport.HeaderToBodyMinimumGap; + var headerTop = headerFragments.Max(item => item.Top); var keyTop = CriticalTableParserSupport.FindKeyTop(fragments); var affixLegend = CriticalTableParserSupport.ParseAffixLegend(fragments, keyTop); var affixLegendSymbols = affixLegend.ClassificationSymbols; @@ -22,9 +22,10 @@ public sealed class StandardCriticalTableParser var rowLabelFragments = CriticalTableParserSupport.FindRowLabelFragments( fragments, leftCutoff, - bodyStartTop, + headerTop + CriticalTableParserSupport.HeaderToRowLabelMinimumGap, keyTop); var rowAnchors = CriticalTableParserSupport.CreateRowAnchors(rowLabelFragments); + var bodyStartTop = CriticalTableParserSupport.ResolveBodyStartTop(headerTop, rowAnchors); if (rowAnchors.Count == 0) { diff --git a/src/RolemasterDb.ImportTool/Parsing/VariantColumnCriticalTableParser.cs b/src/RolemasterDb.ImportTool/Parsing/VariantColumnCriticalTableParser.cs index 8ceec30..c2c53bf 100644 --- a/src/RolemasterDb.ImportTool/Parsing/VariantColumnCriticalTableParser.cs +++ b/src/RolemasterDb.ImportTool/Parsing/VariantColumnCriticalTableParser.cs @@ -27,7 +27,7 @@ public sealed class VariantColumnCriticalTableParser }) .ToList(); - var bodyStartTop = headerFragments.Max(item => item.Top) + CriticalTableParserSupport.HeaderToBodyMinimumGap; + var headerTop = headerFragments.Max(item => item.Top); var keyTop = CriticalTableParserSupport.FindKeyTop(fragments); var affixLegend = CriticalTableParserSupport.ParseAffixLegend(fragments, keyTop); var affixLegendSymbols = affixLegend.ClassificationSymbols; @@ -35,9 +35,10 @@ public sealed class VariantColumnCriticalTableParser var rowLabelFragments = CriticalTableParserSupport.FindRowLabelFragments( fragments, leftCutoff, - bodyStartTop, + headerTop + CriticalTableParserSupport.HeaderToRowLabelMinimumGap, keyTop); var rowAnchors = CriticalTableParserSupport.CreateRowAnchors(rowLabelFragments); + var bodyStartTop = CriticalTableParserSupport.ResolveBodyStartTop(headerTop, rowAnchors); if (rowAnchors.Count == 0) {