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()); }
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()); }
/// <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()); }