예제 #1
0
        public virtual void EqualNumbers()
        {
            using (PdfDocument document = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()))) {
                // add a page to avoid exception throwing on close
                document.AddNewPage();
                PdfNumber num1 = (PdfNumber) new PdfNumber(1).MakeIndirect(document);
                PdfNumber num2 = new PdfNumber(2);
                NUnit.Framework.Assert.IsFalse(num1.Equals(num2));
                int hashCode = num1.GetHashCode();
                num1.Increment();
                NUnit.Framework.Assert.IsTrue(num1.Equals(num2));
                NUnit.Framework.Assert.AreNotEqual(hashCode, num1.GetHashCode());
            }
            PdfNumber a        = new PdfNumber(1);
            PdfNumber aContent = new PdfNumber(a.GetInternalContent());
            PdfNumber b        = new PdfNumber(2);
            PdfNumber bContent = new PdfNumber(b.GetInternalContent());

            NUnit.Framework.Assert.IsTrue(a.Equals(aContent));
            NUnit.Framework.Assert.AreEqual(a.GetHashCode(), aContent.GetHashCode());
            NUnit.Framework.Assert.IsTrue(b.Equals(bContent));
            NUnit.Framework.Assert.AreEqual(b.GetHashCode(), bContent.GetHashCode());
            NUnit.Framework.Assert.IsFalse(aContent.Equals(bContent));
            NUnit.Framework.Assert.AreNotEqual(aContent.GetHashCode(), bContent.GetHashCode());
            aContent.Increment();
            NUnit.Framework.Assert.IsFalse(a.Equals(aContent));
            NUnit.Framework.Assert.AreNotEqual(a.GetHashCode(), aContent.GetHashCode());
            NUnit.Framework.Assert.IsTrue(aContent.Equals(bContent));
            NUnit.Framework.Assert.AreEqual(aContent.GetHashCode(), bContent.GetHashCode());
        }
예제 #2
0
        public virtual void EqualNumbers()
        {
            PdfNumber num1 = (PdfNumber) new PdfNumber(1).MakeIndirect(new PdfDocument(new PdfWriter(new ByteArrayOutputStream
                                                                                                         ())));
            PdfNumber num2 = new PdfNumber(2);

            NUnit.Framework.Assert.IsFalse(num1.Equals(num2));
            int hashCode = num1.GetHashCode();

            num1.Increment();
            NUnit.Framework.Assert.IsTrue(num1.Equals(num2));
            NUnit.Framework.Assert.AreNotEqual(hashCode, num1.GetHashCode());
        }
예제 #3
0
        /// <summary>Adds object to the object stream.</summary>
        /// <param name="object">object to add.</param>
        public virtual void AddObject(PdfObject @object)
        {
            if (size.IntValue() == MAX_OBJ_STREAM_SIZE)
            {
                throw new PdfException(PdfException.PdfObjectStreamReachMaxSize);
            }
            PdfOutputStream outputStream = GetOutputStream();

            indexStream.WriteInteger(@object.GetIndirectReference().GetObjNumber()).WriteSpace().WriteLong(outputStream
                                                                                                           .GetCurrentPos()).WriteSpace();
            outputStream.Write(@object);
            @object.GetIndirectReference().SetObjStreamNumber(GetIndirectReference().GetObjNumber());
            @object.GetIndirectReference().SetIndex(size.IntValue());
            outputStream.WriteSpace();
            size.Increment();
            ((PdfNumber)Get(PdfName.First)).SetValue(indexStream.GetCurrentPos());
        }