예제 #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 TestNaN()
        {
            PdfNumber number = new PdfNumber(double.NaN);

            // code for "0"
            byte[] expected = new byte[] { 48 };
            NUnit.Framework.Assert.AreEqual(expected, number.GetInternalContent());
        }
예제 #3
0
 private void Write(PdfNumber pdfNumber)
 {
     if (pdfNumber.HasContent())
     {
         WriteBytes(pdfNumber.GetInternalContent());
     }
     else
     {
         if (pdfNumber.IsDoubleNumber())
         {
             WriteDouble(pdfNumber.GetValue());
         }
         else
         {
             WriteInteger(pdfNumber.IntValue());
         }
     }
 }