private Dictionary <RomajiTagInvalid, RomajiTag[]> checkInvalidRomajiTags(Lyric lyric) { var result = new Dictionary <RomajiTagInvalid, RomajiTag[]>(); // Checking out of range tags. var outOfRangeTags = TextTagsUtils.FindOutOfRange(lyric.RomajiTags, lyric.Text); if (outOfRangeTags?.Length > 0) { result.Add(RomajiTagInvalid.OutOfRange, outOfRangeTags); } // Checking overlapping. var sorting = config.RomajiPositionSorting; var overlappingTags = TextTagsUtils.FindOverlapping(lyric.RomajiTags, sorting); if (overlappingTags?.Length > 0) { result.Add(RomajiTagInvalid.Overlapping, overlappingTags); } return(result); }
public void TestFindOverlapping(string[] textTags, TextTagsUtils.Sorting sorting, string[] actualTextTags) { var invalidTextTag = TextTagsUtils.FindOverlapping(TestCaseTagHelper.ParseRubyTags(textTags), sorting); TextTagAssert.ArePropertyEqual(invalidTextTag, TestCaseTagHelper.ParseRubyTags(actualTextTags)); }