@@ -40,6 +40,9 @@ source product.
40
40
For more information, please contact iText Software Corp. at this
41
41
42
42
*/
43
+ using System . Collections . Generic ;
44
+ using iText . IO . Font . Otf ;
45
+ using iText . IO . Util ;
43
46
using iText . Test ;
44
47
45
48
namespace iText . Layout . Renderer {
@@ -48,5 +51,41 @@ public class TypographyUtilsTest : ExtendedITextTest {
48
51
public virtual void VerifyPdfCalligraphIsNotAvailable ( ) {
49
52
NUnit . Framework . Assert . IsFalse ( TypographyUtils . IsPdfCalligraphAvailable ( ) ) ;
50
53
}
54
+
55
+ [ NUnit . Framework . Test ]
56
+ public virtual void UpdateAnchorDeltaMarkNotReorderedTest ( ) {
57
+ // original line 'abm', and 'm' is a mark based on 'b'
58
+ Glyph mGlyph = new Glyph ( 100 , 'm' ) ;
59
+ mGlyph . SetAnchorDelta ( ( short ) - 1 ) ;
60
+ mGlyph . SetXAdvance ( ( short ) 15 ) ;
61
+ mGlyph . SetYAdvance ( ( short ) 25 ) ;
62
+ LineRenderer . RendererGlyph b = new LineRenderer . RendererGlyph ( new Glyph ( 100 , 'b' ) , null ) ;
63
+ LineRenderer . RendererGlyph m = new LineRenderer . RendererGlyph ( mGlyph , null ) ;
64
+ LineRenderer . RendererGlyph a = new LineRenderer . RendererGlyph ( new Glyph ( 100 , 'a' ) , null ) ;
65
+ IList < LineRenderer . RendererGlyph > reorderedLine = JavaUtil . ArraysAsList ( b , m , a ) ;
66
+ int [ ] reorder = new int [ ] { 1 , 2 , 0 } ;
67
+ int [ ] inverseReorder = new int [ ] { 2 , 0 , 1 } ;
68
+ TypographyUtils . UpdateAnchorDeltaForReorderedLineGlyphs ( reorder , inverseReorder , reorderedLine ) ;
69
+ NUnit . Framework . Assert . AreSame ( mGlyph , m . glyph ) ;
70
+ NUnit . Framework . Assert . AreEqual ( - 1 , m . glyph . GetAnchorDelta ( ) ) ;
71
+ }
72
+
73
+ [ NUnit . Framework . Test ]
74
+ public virtual void UpdateAnchorDeltaMarkReorderedTest ( ) {
75
+ // original line 'abm', and 'm' is a mark based on 'b'
76
+ Glyph mGlyph = new Glyph ( 100 , 'm' ) ;
77
+ mGlyph . SetAnchorDelta ( ( short ) - 1 ) ;
78
+ mGlyph . SetXAdvance ( ( short ) 15 ) ;
79
+ mGlyph . SetYAdvance ( ( short ) 25 ) ;
80
+ LineRenderer . RendererGlyph m = new LineRenderer . RendererGlyph ( mGlyph , null ) ;
81
+ LineRenderer . RendererGlyph b = new LineRenderer . RendererGlyph ( new Glyph ( 100 , 'b' ) , null ) ;
82
+ LineRenderer . RendererGlyph a = new LineRenderer . RendererGlyph ( new Glyph ( 100 , 'a' ) , null ) ;
83
+ IList < LineRenderer . RendererGlyph > reorderedLine = JavaUtil . ArraysAsList ( m , b , a ) ;
84
+ int [ ] reorder = new int [ ] { 2 , 1 , 0 } ;
85
+ int [ ] inverseReorder = new int [ ] { 2 , 1 , 0 } ;
86
+ TypographyUtils . UpdateAnchorDeltaForReorderedLineGlyphs ( reorder , inverseReorder , reorderedLine ) ;
87
+ NUnit . Framework . Assert . AreNotSame ( mGlyph , m . glyph ) ;
88
+ NUnit . Framework . Assert . AreEqual ( 1 , m . glyph . GetAnchorDelta ( ) ) ;
89
+ }
51
90
}
52
91
}
0 commit comments