Esempio n. 1
0
        public void GetByteRange_WhenBufferIsSmallerThanRequestedCount_Throws()
        {
            // Arrange
            var bytes           = Enumerable.Range(0, 255).Select(i => (byte)i).ToArray();
            var rangeByteBuffer = new RangeByteBuffer(new MemoryByteBuffer(bytes), 0, 255);

            // Act + Assert
            var buffer = new byte[10];

            Assert.Throws <ArgumentException>(() => rangeByteBuffer.GetByteRange(0, 20, buffer));
        }
Esempio n. 2
0
        public void Data_CompareWithInitializer_ExactMatch(int offset, int count)
        {
            // Arrange
            var bytes    = Enumerable.Range(0, 255).Select(i => (byte)i).ToArray();
            var expected = new ArraySegment <byte>(bytes, offset, count);
            var buffer   = new RangeByteBuffer(new MemoryByteBuffer(bytes), offset, count);

            // Act
            var actual = buffer.Data;

            // Assert
            Assert.Equal(expected.Count, actual.Length);
            Assert.Equal(expected, actual);
        }
Esempio n. 3
0
        public void GetByteRange_CompareWithInitializer_ExactMatch(int ctorOffset, int ctorCount, int byteRangeOffset, int byteRangeCount)
        {
            // Arrange
            var bytes    = Enumerable.Range(0, 255).Select(i => (byte)i).ToArray();
            var buffer   = new RangeByteBuffer(new MemoryByteBuffer(bytes), ctorOffset, ctorCount);
            var expected = new ArraySegment <byte>(bytes, ctorOffset + byteRangeOffset, Math.Min(ctorCount, byteRangeCount));

            // Act
            var actual = new byte[Math.Min(ctorCount, byteRangeCount)];

            buffer.GetByteRange(byteRangeOffset, byteRangeCount, actual);

            // Assert
            Assert.Equal(expected.Count, actual.Length);
            Assert.Equal(expected, actual);
        }
Esempio n. 4
0
            public override IByteBuffer GetFrame(int frame)
            {
                int         offset = UncompressedFrameSize * frame;
                IByteBuffer buffer = new RangeByteBuffer(Element.Buffer, (uint)offset, (uint)UncompressedFrameSize);

                if (BytesAllocated == 1 && Syntax.Endian == Endian.Little)
                {
                    buffer = new SwapByteBuffer(buffer, 2);
                }
                else if (Syntax.Endian == Endian.Big)
                {
                    buffer = new SwapByteBuffer(buffer, 2);
                }

                return(buffer);
            }
Esempio n. 5
0
            public override IByteBuffer GetFrame(int frame)
            {
                if (frame < 0 || frame >= NumberOfFrames)
                {
                    throw new IndexOutOfRangeException("Requested frame out of range!");
                }

                int         offset = UncompressedFrameSize * frame;
                IByteBuffer buffer = new RangeByteBuffer(Element.Buffer, (uint)offset, (uint)UncompressedFrameSize);

                // mainly for GE Private Implicit VR Big Endian
                if (Syntax.SwapPixelData)
                {
                    buffer = new SwapByteBuffer(buffer, 2);
                }

                return(buffer);
            }
Esempio n. 6
0
        public void CopyToStream_ShouldWorkCorrectly(int total, int offset, int count)
        {
            // Arrange
            var bytes = Enumerable.Range(0, total).Select(i => (byte)i).ToArray();

            using var outputMs = new MemoryStream(bytes.Length);
            var buffer   = new RangeByteBuffer(new MemoryByteBuffer(bytes), offset, count);
            var expected = new ArraySegment <byte>(bytes, offset, count);

            // Act
            buffer.CopyToStream(outputMs);

            // Assert
            var actual = outputMs.ToArray();

            Assert.Equal(expected.Count, actual.Length);
            Assert.Equal(expected, actual);
        }
Esempio n. 7
0
            public override IByteBuffer GetFrame(int frame)
            {
                if (frame < 0 || frame >= NumberOfFrames)
                {
                    throw new IndexOutOfRangeException("Requested frame out of range!");
                }

                int         offset = UncompressedFrameSize * frame;
                IByteBuffer buffer = new RangeByteBuffer(Element.Buffer, (uint)offset, (uint)UncompressedFrameSize);

                //TODO: trace down the need for this additional byte swap
                if (Syntax.Endian == Endian.Big && !Syntax.SwapPixelData)
                {
                    buffer = new SwapByteBuffer(buffer, 2);
                }

                // mainly for GE Private Implicit VR Little Endian
                if (Syntax.SwapPixelData)
                {
                    buffer = new SwapByteBuffer(buffer, 2);
                }

                return(buffer);
            }