public void GenerateImageCollection()
        {
            var settings = new Settings
            {
                HighestId         = 4000,
                PostImageEncoding = ImageFormat.Png,
                ItemImageSize     = new Size(800, 400),
                XmlWriterSettings = XmlWriterSettings,
            };
            var dzc = new DeepZoomCollection(settings);

            const string expectedXml = @"
<Collection xmlns='http://schemas.microsoft.com/deepzoom/2008' MaxLevel='7' TileSize='256' Format='png' NextItemId='111'>
  <Items>
    <I N='0' Id='1' Source='../0/0001.dzi'>
      <Size Width='800' Height='400' />
    </I>
    <I N='1' Id='51' Source='../0/0051.dzi'>
      <Size Width='800' Height='400' />
    </I>
    <I N='2' Id='110' Source='../0/0110.dzi'>
      <Size Width='800' Height='400' />
    </I>
  </Items>
</Collection>";
            var          expectedCollectionElement = XElement.Parse(expectedXml);

            var postIds = new[] { 1, 51, 110 };
            var actualCollectionElement = dzc.GenerateImageCollection(postIds, "../");

            Assert.AreEqual(expectedCollectionElement.ToString(), actualCollectionElement.ToString());
        }
        public void CreateImageCollectionItemNode_Typical()
        {
            var settings = new Settings
            {
                HighestId = 4000,
            };
            var          dzc              = new DeepZoomCollection(settings);
            const string expectedXml      = @"
<I N='0' Id='351' Source='../../..\0/0351.dzi' xmlns='http://schemas.microsoft.com/deepzoom/2008' />";
            var          expectedItemNode = XElement.Parse(expectedXml);

            var actualItemNode = dzc.CreateImageCollectionItemNode(0, 351, "../../..");

            Assert.AreEqual(expectedItemNode.ToString(), actualItemNode.ToString());
        }
        public void GenerateCollectionTiles_SixtyFour()
        {
            var expected = new[]
            {
                new ImageCollectionTile(0, 0, 0, new[]
                {
                    TestIds[0],
                    TestIds[1],
                    TestIds[2],
                    TestIds[3],
                    TestIds[4],
                    TestIds[5],
                    TestIds[6],
                    TestIds[7],
                    TestIds[8],
                    TestIds[9],
                    TestIds[10],
                    TestIds[11],
                    TestIds[12],
                    TestIds[13],
                    TestIds[14],
                    TestIds[15],
                }
                                        ),
                new ImageCollectionTile(0, 1, 16, new[]
                {
                    TestIds[16],
                    TestIds[17],
                    TestIds[18],
                    TestIds[19],
                    TestIds[20],
                    TestIds[21],
                    TestIds[22],
                    TestIds[23],
                    TestIds[24],
                    TestIds[25],
                    TestIds[26],
                    TestIds[27],
                    TestIds[28],
                    TestIds[29],
                }
                                        ),
            };
            var actual = DeepZoomCollection.GenerateCollectionTiles(TestIds, 64);

            EnumerableExtensions.EnumerateSame(expected, actual);
        }
        public void GenerateCollectionTiles_OneToThirtyTwo()
        {
            var expected = new[]
            {
                new ImageCollectionTile(0, 0, 0, new[]
                {
                    TestIds[0],
                    TestIds[1],
                    TestIds[2],
                    TestIds[3],
                    TestIds[4],
                    TestIds[5],
                    TestIds[6],
                    TestIds[7],
                    TestIds[8],
                    TestIds[9],
                    TestIds[10],
                    TestIds[11],
                    TestIds[12],
                    TestIds[13],
                    TestIds[14],
                    TestIds[15],
                    TestIds[16],
                    TestIds[17],
                    TestIds[18],
                    TestIds[19],
                    TestIds[20],
                    TestIds[21],
                    TestIds[22],
                    TestIds[23],
                    TestIds[24],
                    TestIds[25],
                    TestIds[26],
                    TestIds[27],
                    TestIds[28],
                    TestIds[29],
                }
                                        ),
            };

            for (var i = 0; i < 6; i++)
            {
                var levelSize = (int)Math.Pow(2, i);
                var actual    = DeepZoomCollection.GenerateCollectionTiles(TestIds, levelSize);
                EnumerableExtensions.EnumerateSame(expected, actual);
            }
        }
        public void CreateCollectionTile()
        {
            using (var oneStream = AssemblyExtensions.OpenScopedResourceStream <DeepZoomCollectionTest> ("1.png"))
                using (var one = new Bitmap(oneStream))
                    using (var twoStream = AssemblyExtensions.OpenScopedResourceStream <DeepZoomCollectionTest> ("2.png"))
                        using (var two = new Bitmap(twoStream))
                            using (var threeStream = AssemblyExtensions.OpenScopedResourceStream <DeepZoomCollectionTest> ("3.png"))
                                using (var three = new Bitmap(threeStream))
                                    using (var fourStream = AssemblyExtensions.OpenScopedResourceStream <DeepZoomCollectionTest> ("4.png"))
                                        using (var four = new Bitmap(fourStream))
                                        {
                                            var sourceBitmaps = new[] { one, two, three, four };
                                            using (var actualBitmap = DeepZoomCollection.CreateCollectionTile(sourceBitmaps, 128))
                                                using (var actualStream = new MemoryStream())
                                                {
                                                    actualBitmap.Save(actualStream, ImageFormat.Png);

                                                    ProgramTest.AssertStreamsAreEqual <DeepZoomCollectionTest> ("1234.png", actualStream);
                                                }
                                        }
        }
        public void CreateImageCollectionItemNode_Typical ()
        {
            var settings = new Settings
            {
                HighestId = 4000,
            };
            var dzc = new DeepZoomCollection (settings);
            const string expectedXml = @"
<I N='0' Id='351' Source='../../..\0/0351.dzi' xmlns='http://schemas.microsoft.com/deepzoom/2008' />";
            var expectedItemNode = XElement.Parse (expectedXml);

            var actualItemNode = dzc.CreateImageCollectionItemNode (0, 351, "../../..");

            Assert.AreEqual (expectedItemNode.ToString (), actualItemNode.ToString ());
        }
        public void GenerateImageCollection ()
        {
            var settings = new Settings
            {
                HighestId = 4000,
                PostImageEncoding = ImageFormat.Png,
                ItemImageSize = new Size(800, 400),
                XmlWriterSettings = XmlWriterSettings,
            };
            var dzc = new DeepZoomCollection (settings);

            const string expectedXml = @"
<Collection xmlns='http://schemas.microsoft.com/deepzoom/2008' MaxLevel='7' TileSize='256' Format='png' NextItemId='111'>
  <Items>
    <I N='0' Id='1' Source='../0/0001.dzi'>
      <Size Width='800' Height='400' />
    </I>
    <I N='1' Id='51' Source='../0/0051.dzi'>
      <Size Width='800' Height='400' />
    </I>
    <I N='2' Id='110' Source='../0/0110.dzi'>
      <Size Width='800' Height='400' />
    </I>
  </Items>
</Collection>";
            var expectedCollectionElement = XElement.Parse (expectedXml);

            var postIds = new[] { 1, 51, 110 };
            var actualCollectionElement = dzc.GenerateImageCollection (postIds, "../");

            Assert.AreEqual (expectedCollectionElement.ToString (), actualCollectionElement.ToString ());
        }
        public void GenerateCollectionTiles_TwoFiftySix()
        {
            var expected = new[]
            {
                new ImageCollectionTile(0, 0, 0, new[]
                {
                    TestIds[0],
                }
                                        ),
                new ImageCollectionTile(0, 1, 1, new[]
                {
                    TestIds[1],
                }
                                        ),
                new ImageCollectionTile(1, 0, 2, new[]
                {
                    TestIds[2],
                }
                                        ),
                new ImageCollectionTile(1, 1, 3, new[]
                {
                    TestIds[3],
                }
                                        ),
                new ImageCollectionTile(0, 2, 4, new[]
                {
                    TestIds[4],
                }
                                        ),
                new ImageCollectionTile(0, 3, 5, new[]
                {
                    TestIds[5],
                }
                                        ),
                new ImageCollectionTile(1, 2, 6, new[]
                {
                    TestIds[6],
                }
                                        ),
                new ImageCollectionTile(1, 3, 7, new[]
                {
                    TestIds[7],
                }
                                        ),
                new ImageCollectionTile(2, 0, 8, new[]
                {
                    TestIds[8],
                }
                                        ),
                new ImageCollectionTile(2, 1, 9, new[]
                {
                    TestIds[9],
                }
                                        ),
                new ImageCollectionTile(3, 0, 10, new[]
                {
                    TestIds[10],
                }
                                        ),
                new ImageCollectionTile(3, 1, 11, new[]
                {
                    TestIds[11],
                }
                                        ),
                new ImageCollectionTile(2, 2, 12, new[]
                {
                    TestIds[12],
                }
                                        ),
                new ImageCollectionTile(2, 3, 13, new[]
                {
                    TestIds[13],
                }
                                        ),
                new ImageCollectionTile(3, 2, 14, new[]
                {
                    TestIds[14],
                }
                                        ),
                new ImageCollectionTile(3, 3, 15, new[]
                {
                    TestIds[15],
                }
                                        ),
                new ImageCollectionTile(0, 4, 16, new[]
                {
                    TestIds[16],
                }
                                        ),
                new ImageCollectionTile(0, 5, 17, new[]
                {
                    TestIds[17],
                }
                                        ),
                new ImageCollectionTile(1, 4, 18, new[]
                {
                    TestIds[18],
                }
                                        ),
                new ImageCollectionTile(1, 5, 19, new[]
                {
                    TestIds[19],
                }
                                        ),
                new ImageCollectionTile(0, 6, 20, new[]
                {
                    TestIds[20],
                }
                                        ),
                new ImageCollectionTile(0, 7, 21, new[]
                {
                    TestIds[21],
                }
                                        ),
                new ImageCollectionTile(1, 6, 22, new[]
                {
                    TestIds[22],
                }
                                        ),
                new ImageCollectionTile(1, 7, 23, new[]
                {
                    TestIds[23],
                }
                                        ),
                new ImageCollectionTile(2, 4, 24, new[]
                {
                    TestIds[24],
                }
                                        ),
                new ImageCollectionTile(2, 5, 25, new[]
                {
                    TestIds[25],
                }
                                        ),
                new ImageCollectionTile(3, 4, 26, new[]
                {
                    TestIds[26],
                }
                                        ),
                new ImageCollectionTile(3, 5, 27, new[]
                {
                    TestIds[27],
                }
                                        ),
                new ImageCollectionTile(2, 6, 28, new[]
                {
                    TestIds[28],
                }
                                        ),
                new ImageCollectionTile(2, 7, 29, new[]
                {
                    TestIds[29],
                }
                                        ),
            };
            var actual = DeepZoomCollection.GenerateCollectionTiles(TestIds, 256);

            EnumerableExtensions.EnumerateSame(expected, actual);
        }
        public void GenerateCollectionTiles_OneTwentyEight()
        {
            var expected = new[]
            {
                new ImageCollectionTile(0, 0, 0, new[]
                {
                    TestIds[0],
                    TestIds[1],
                    TestIds[2],
                    TestIds[3],
                }
                                        ),
                new ImageCollectionTile(0, 1, 4, new[]
                {
                    TestIds[4],
                    TestIds[5],
                    TestIds[6],
                    TestIds[7],
                }
                                        ),
                new ImageCollectionTile(1, 0, 8, new[]
                {
                    TestIds[8],
                    TestIds[9],
                    TestIds[10],
                    TestIds[11],
                }
                                        ),
                new ImageCollectionTile(1, 1, 12, new[]
                {
                    TestIds[12],
                    TestIds[13],
                    TestIds[14],
                    TestIds[15],
                }
                                        ),
                new ImageCollectionTile(0, 2, 16, new[]
                {
                    TestIds[16],
                    TestIds[17],
                    TestIds[18],
                    TestIds[19],
                }
                                        ),
                new ImageCollectionTile(0, 3, 20, new[]
                {
                    TestIds[20],
                    TestIds[21],
                    TestIds[22],
                    TestIds[23],
                }
                                        ),
                new ImageCollectionTile(1, 2, 24, new[]
                {
                    TestIds[24],
                    TestIds[25],
                    TestIds[26],
                    TestIds[27],
                }
                                        ),
                new ImageCollectionTile(1, 3, 28, new[]
                {
                    TestIds[28],
                    TestIds[29],
                }
                                        ),
            };
            var actual = DeepZoomCollection.GenerateCollectionTiles(TestIds, 128);

            EnumerableExtensions.EnumerateSame(expected, actual);
        }