Exemple #1
0
        public void SubGridCellSegmentPassesDataWrapper_NonStatic_Cell_Test()
        {
            CellPass pass1 = TestCellPass();

            pass1.Time = DateTime.SpecifyKind(new DateTime(2000, 1, 1, 0, 0, 0), DateTimeKind.Utc);

            CellPass pass2 = TestCellPass();

            pass2.Time = DateTime.SpecifyKind(new DateTime(2000, 1, 2, 0, 0, 0), DateTimeKind.Utc);

            CellPass pass3 = TestCellPass();

            pass3.Time = DateTime.SpecifyKind(new DateTime(2000, 1, 3, 0, 0, 0), DateTimeKind.Utc);

            CellPass[] passes = new CellPass[] { pass1, pass2, pass3 };

            using (var item = new SubGridCellSegmentPassesDataWrapper_NonStatic())
            {
                item.AddPass(1, 1, pass1);
                item.AddPass(1, 1, pass2);
                item.AddPass(1, 1, pass3);

                Assert.Equal(3, item.PassCount(1, 1));

                Cell_NonStatic cell = item.ExtractCellPasses(1, 1);

                for (int i = 0; i < cell.PassCount; i++)
                {
                    Assert.True(cell.Passes.GetElement(i).Equals(passes[i]),
                                "Extracted cell does not contain the same cell passes added to it");
                }
            }
        }
Exemple #2
0
        public void SubGridCellSegmentPassesDataWrapper_NonStatic_WriteRead_Test()
        {
            // Create the main 2D array of cell pass arrays
            var cellPasses = new Cell_NonStatic[SubGridTreeConsts.SubGridTreeDimension, SubGridTreeConsts.SubGridTreeDimension];

            // Create each sub array and add a test cell pass to it
            SubGridUtilities.SubGridDimensionalIterator((x, y) =>
            {
                cellPasses[x, y].Passes = new TRexSpan <CellPass>(new CellPass[1], TRexSpan <CellPass> .NO_SLAB_INDEX, 0, 1, false);
                cellPasses[x, y].Passes.Add(TestCellPass());
            });

            using (var item1 = new SubGridCellSegmentPassesDataWrapper_NonStatic())
            {
                MemoryStream ms = new MemoryStream(Consts.TREX_DEFAULT_MEMORY_STREAM_CAPACITY_ON_CREATION);

                // Write to the stream...
                BinaryWriter writer = new BinaryWriter(ms, Encoding.UTF8, true);
                item1.SetState(cellPasses);
                item1.Write(writer);

                // Create a new segment and read it back again
                using (var item2 = new SubGridCellSegmentPassesDataWrapper_NonStatic())
                {
                    ms.Position = 0;
                    BinaryReader reader = new BinaryReader(ms, Encoding.UTF8, true);
                    item2.Read(reader);

                    SubGridUtilities.SubGridDimensionalIterator((col, row) =>
                    {
                        var cellPasses1 = item1.ExtractCellPasses(col, row);
                        var cellPasses2 = item2.ExtractCellPasses(col, row);

                        Assert.True(cellPasses1.PassCount == cellPasses2.PassCount,
                                    "Read segment does not contain the same list of cell passes written into it - counts do not match");

                        for (int i = 0; i < cellPasses1.PassCount; i++)
                        {
                            Assert.True(cellPasses1.Passes.GetElement(i).Equals(cellPasses2.Passes.GetElement(i)),
                                        "Read segment does not contain the same list of cell passes written into it");
                        }
                    });
                }
            }
        }