public virtual void PdtIndirectReferenceLateInitializing3()
        {
            MemoryStream baos     = new MemoryStream();
            PdfWriter    writer   = new PdfWriter(baos);
            PdfDocument  document = new PdfDocument(writer);

            document.AddNewPage();
            PdfDictionary        catalog = document.GetCatalog().GetPdfObject();
            PdfIndirectReference indRef1 = document.CreateNextIndirectReference();
            PdfIndirectReference indRef2 = document.CreateNextIndirectReference();
            PdfArray             array   = new PdfArray();

            catalog.Put(new PdfName("array1"), array);
            PdfString @string = new PdfString("array string");

            array.Add(@string);
            array.Add(indRef1);
            array.Add(indRef2);
            PdfDictionary dict = new PdfDictionary();

            dict.MakeIndirect(document, indRef1);
            PdfArray  arrayClone = (PdfArray)array.Clone();
            PdfObject object0    = arrayClone.Get(0, false);
            PdfObject object1    = arrayClone.Get(1, false);
            PdfObject object2    = arrayClone.Get(2, false);

            NUnit.Framework.Assert.IsTrue(object0 is PdfString);
            NUnit.Framework.Assert.IsTrue(object1 is PdfDictionary);
            NUnit.Framework.Assert.IsTrue(object2 is PdfNull);
            PdfString string1 = (PdfString)object0;

            NUnit.Framework.Assert.IsTrue(@string != string1);
            NUnit.Framework.Assert.IsTrue(@string.GetValue().Equals(string1.GetValue()));
            PdfDictionary dict1 = (PdfDictionary)object1;

            NUnit.Framework.Assert.IsTrue(dict1.GetIndirectReference().GetObjNumber() == dict.GetIndirectReference().GetObjNumber
                                              ());
            NUnit.Framework.Assert.IsTrue(dict1.GetIndirectReference().GetGenNumber() == dict.GetIndirectReference().GetGenNumber
                                              ());
            NUnit.Framework.Assert.IsTrue(dict1 == dict);
            document.Close();
        }