Skip to content

Commit 208d6c4

Browse files
committed
Added extra tests
1 parent 21d7308 commit 208d6c4

2 files changed

Lines changed: 77 additions & 0 deletions

File tree

src/EPPlus.Fonts.OpenType.Tests/Integration/TextLayoutEngineTests.cs

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,78 @@ public void TestParagraphs()
730730
}
731731
}
732732

733+
[TestMethod]
734+
public void TestLayoutSystemParagraphChars()
735+
{
736+
List<string> lstOfRichText = new() { "Here comes lorem ipsum\u2029 " +
737+
"Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt, explicabo. Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem ipsum, quia dolor sit amet consectetur adipisci[ng] velit, sed quia non numquam [do] eius modi tempora inci[di]dunt, ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum[d] exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? [D]Quis autem vel eum i[r]ure reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla pariatur?\u2029 " +
738+
"At vero eos et accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non provident, similique sunt in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem reru[d]um facilis est e[r]t expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio, cumque nihil impedit, quo minus id, quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellend[a]us. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.\u2029 " +
739+
"Let's see if we can recognize unicode paragraph separators" };
740+
var font = new MeasurementFont()
741+
{
742+
FontFamily = "Aptos Narrow",
743+
Size = 11,
744+
Style = MeasurementFontStyles.Bold
745+
};
746+
var fragments = new List<TextFragment>()
747+
{
748+
new TextFragment() {Text = lstOfRichText[0], Font = font }
749+
};
750+
751+
var layout = new LayoutSystem(fragments, FontFolders);
752+
Assert.AreEqual(3, layout.GetParagraphSeparatorCount());
753+
}
754+
755+
[TestMethod]
756+
public void TestParagraphs_DifficultCase()
757+
{
758+
List<string> lstOfRichText = new() { "TextBox2", "ra underline", "La Strike", "Goudy size 16" };
759+
var font2 = new MeasurementFont()
760+
{
761+
FontFamily = "Aptos Narrow",
762+
Size = 11,
763+
Style = MeasurementFontStyles.Bold
764+
};
765+
766+
var font3 = new MeasurementFont()
767+
{
768+
FontFamily = "Aptos Narrow",
769+
Size = 11,
770+
Style = MeasurementFontStyles.Underline
771+
};
772+
773+
var font4 = new MeasurementFont()
774+
{
775+
FontFamily = "Aptos Narrow",
776+
Size = 11,
777+
Style = MeasurementFontStyles.Strikeout
778+
};
779+
780+
var font5 = new MeasurementFont()
781+
{
782+
FontFamily = "Goudy Stout",
783+
Size = 16,
784+
Style = MeasurementFontStyles.Regular
785+
};
786+
787+
788+
List<MeasurementFont> fonts = new() { font2, font3, font4, font5 };
789+
var fragments = new List<TextFragment>();
790+
791+
for (int i = 0; i < lstOfRichText.Count(); i++)
792+
{
793+
var currentFrag = new TextFragment() { Text = lstOfRichText[i], Font = fonts[i] };
794+
fragments.Add(currentFrag);
795+
}
796+
797+
var maxSizePoints = Math.Round(300d, 0, MidpointRounding.AwayFromZero).PixelToPoint();
798+
799+
var paragraph = new LayoutSystem(fragments, FontFolders);
800+
var wrappedLines = paragraph.Wrap(FontFolders, 225d);
801+
802+
var line1 = wrappedLines[0];
803+
}
804+
733805
[TestMethod]
734806
public void EnsureCorrectTotalIndex()
735807
{

src/EPPlus.Fonts.OpenType/Integration/RichText/LayoutSystem.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,11 @@ public List<string> GetTextOfAllTextRuns()
229229
return runs;
230230
}
231231

232+
public int GetParagraphSeparatorCount()
233+
{
234+
return ParagraphSeparatorIndicies.Count;
235+
}
236+
232237
List<CharInfo> GetCharInfoOfStyleRun(StyleRun run)
233238
{
234239
List<CharInfo> infoLst = new List<CharInfo>();

0 commit comments

Comments
 (0)