|
| 1 | +using iText.Kernel.Geom; |
| 2 | + |
| 3 | +namespace iText.Layout.Properties { |
| 4 | + public class TransformTest { |
| 5 | + // AffineTransform.TYPE_UNKNOWN |
| 6 | + private const float type = -1; |
| 7 | + |
| 8 | + [NUnit.Framework.Test] |
| 9 | + public virtual void CreateDefaultSingleTransformTest() { |
| 10 | + Transform.SingleTransform defaultSingleTransform = new Transform.SingleTransform(); |
| 11 | + UnitValue[] defaultUnitValues = defaultSingleTransform.GetUnitValues(); |
| 12 | + NUnit.Framework.Assert.AreEqual(new float[] { 1f, 0f, 0f, 1f }, defaultSingleTransform.GetFloats()); |
| 13 | + NUnit.Framework.Assert.AreEqual(2, defaultUnitValues.Length); |
| 14 | + NUnit.Framework.Assert.AreEqual(UnitValue.CreatePointValue(0), defaultUnitValues[0]); |
| 15 | + NUnit.Framework.Assert.AreEqual(UnitValue.CreatePointValue(0), defaultUnitValues[1]); |
| 16 | + } |
| 17 | + |
| 18 | + [NUnit.Framework.Test] |
| 19 | + public virtual void GetAffineTransformPercentPointUnitValuesTest() { |
| 20 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -2f, 3f, -4f, -5f, 12f, 30f, type }), GetAffineTransform |
| 21 | + (UnitValue.PERCENT, UnitValue.POINT)); |
| 22 | + } |
| 23 | + |
| 24 | + [NUnit.Framework.Test] |
| 25 | + public virtual void GetAffineTransformPointPercentUnitValuesTest() { |
| 26 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -2f, 3f, -4f, -5f, 20f, 24f, type }), GetAffineTransform |
| 27 | + (UnitValue.POINT, UnitValue.PERCENT)); |
| 28 | + } |
| 29 | + |
| 30 | + [NUnit.Framework.Test] |
| 31 | + public virtual void GetAffineTransformPercentPercentUnitValuesTest() { |
| 32 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -2f, 3f, -4f, -5f, 12f, 24f, type }), GetAffineTransform |
| 33 | + (UnitValue.PERCENT, UnitValue.PERCENT)); |
| 34 | + } |
| 35 | + |
| 36 | + [NUnit.Framework.Test] |
| 37 | + public virtual void GetAffineTransformPointPointUnitValuesTest() { |
| 38 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -2f, 3f, -4f, -5f, 20f, 30f, type }), GetAffineTransform |
| 39 | + (UnitValue.POINT, UnitValue.POINT)); |
| 40 | + } |
| 41 | + |
| 42 | + [NUnit.Framework.Test] |
| 43 | + public virtual void GetAffineTransformDiffSingleTransformTest() { |
| 44 | + float txUnitValue = 20f; |
| 45 | + float tyUnitValue2 = 30f; |
| 46 | + Transform transform = new Transform(4); |
| 47 | + transform.AddSingleTransform(CreateSingleTransform(UnitValue.CreatePercentValue(txUnitValue), UnitValue.CreatePointValue |
| 48 | + (tyUnitValue2))); |
| 49 | + transform.AddSingleTransform(CreateSingleTransform(UnitValue.CreatePointValue(txUnitValue), UnitValue.CreatePercentValue |
| 50 | + (tyUnitValue2))); |
| 51 | + transform.AddSingleTransform(CreateSingleTransform(UnitValue.CreatePercentValue(txUnitValue), UnitValue.CreatePercentValue |
| 52 | + (tyUnitValue2))); |
| 53 | + transform.AddSingleTransform(CreateSingleTransform(UnitValue.CreatePointValue(txUnitValue), UnitValue.CreatePointValue |
| 54 | + (tyUnitValue2))); |
| 55 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -524f, -105f, 140f, -419f, -788f, 2220f, |
| 56 | + type }), Transform.GetAffineTransform(transform, 60f, 80f)); |
| 57 | + } |
| 58 | + |
| 59 | + [NUnit.Framework.Test] |
| 60 | + public virtual void GetAffineTransformOneSingleTransformFewTimesTest() { |
| 61 | + Transform transform = new Transform(4); |
| 62 | + Transform.SingleTransform singleTransform = CreateSingleTransform(UnitValue.CreatePointValue(20f), UnitValue |
| 63 | + .CreatePointValue(30f)); |
| 64 | + transform.AddSingleTransform(singleTransform); |
| 65 | + transform.AddSingleTransform(singleTransform); |
| 66 | + transform.AddSingleTransform(singleTransform); |
| 67 | + transform.AddSingleTransform(singleTransform); |
| 68 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -524f, -105f, 140f, -419f, -700f, 2100f, |
| 69 | + type }), Transform.GetAffineTransform(transform, 60f, 60f)); |
| 70 | + } |
| 71 | + |
| 72 | + [NUnit.Framework.Test] |
| 73 | + public virtual void GetAffineTransformDifferentWidthHeightTest() { |
| 74 | + Transform transform = new Transform(1); |
| 75 | + transform.AddSingleTransform(CreateSingleTransform(UnitValue.CreatePercentValue(20f), UnitValue.CreatePercentValue |
| 76 | + (30f))); |
| 77 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -2f, 3f, -4f, -5f, -10f, -6f, type }), Transform |
| 78 | + .GetAffineTransform(transform, -50f, -20f)); |
| 79 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -2f, 3f, -4f, -5f, 10f, -6f, type }), Transform |
| 80 | + .GetAffineTransform(transform, 50f, -20f)); |
| 81 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -2f, 3f, -4f, -5f, -10f, 6f, type }), Transform |
| 82 | + .GetAffineTransform(transform, -50f, 20f)); |
| 83 | + NUnit.Framework.Assert.AreEqual(new AffineTransform(new float[] { -2f, 3f, -4f, -5f, 10f, 6f, type }), Transform |
| 84 | + .GetAffineTransform(transform, 50f, 20f)); |
| 85 | + } |
| 86 | + |
| 87 | + private static AffineTransform GetAffineTransform(int txUnitValueType, int tyUnitValueType) { |
| 88 | + float txUnitValue = 20f; |
| 89 | + float tyUnitValue = 30f; |
| 90 | + float width = 60f; |
| 91 | + float height = 80f; |
| 92 | + // create Transform |
| 93 | + Transform transform = new Transform(1); |
| 94 | + transform.AddSingleTransform(CreateSingleTransform(new UnitValue(txUnitValueType, txUnitValue), new UnitValue |
| 95 | + (tyUnitValueType, tyUnitValue))); |
| 96 | + // get AffineTransform |
| 97 | + return Transform.GetAffineTransform(transform, width, height); |
| 98 | + } |
| 99 | + |
| 100 | + private static Transform.SingleTransform CreateSingleTransform(UnitValue xUnitVal, UnitValue yUnitVal) { |
| 101 | + float a = -2f; |
| 102 | + float b = 3f; |
| 103 | + float c = -4f; |
| 104 | + float d = -5f; |
| 105 | + return new Transform.SingleTransform(a, b, c, d, xUnitVal, yUnitVal); |
| 106 | + } |
| 107 | + } |
| 108 | +} |
0 commit comments