/// <summary> /// Copies the specified <see cref="OneBppImage"/> into the new instance /// </summary> public OneBppImage(OneBppImage image) { this.Height = image.Height; this.Width = image.Width; this.ImageData = new byte[Width, Height]; for (int x = 0; x < Width; x++) for (int y = 0; y < Height; y++) this.ImageData[x, y] = image.ImageData[x, y]; }
public void TestCopyConstructor() { OneBppImage testImage = new OneBppImage(testImageSource); OneBppImage copyImage = new OneBppImage(testImage); Assert.AreEqual(testImage.Width, copyImage.Width, "Widths are not identical."); Assert.AreEqual(testImage.Height, copyImage.Height, "Heights are not identical."); Assert.AreNotSame(testImage.ImageData, copyImage.ImageData, "ImageData for copied image should be different than the original."); for (int x = 0; x < testImage.Width; x++) { for (int y = 0; y < testImage.Height; y++) { Assert.AreEqual(testImage.ImageData[x,y], copyImage.ImageData[x,y], "Pixels are not identical at ({0},{1})", x, y); } } }
public void TestInitFromByteData() { // Original code had a bug in it which reduced the dimensions of the image // each time it was constructed (off-by-one with the multidimensional byte access) OneBppImage testImage = new OneBppImage(testImageSource); Assert.AreEqual(TEST_IMAGE_DIMENSION, testImage.Width); Assert.AreEqual(TEST_IMAGE_DIMENSION, testImage.Height); for (int x = 0; x < testImage.Width; x++) { for (int y = 0; y < testImage.Height; y++) { Assert.AreEqual(testImageSource[x,y], testImage.ImageData[x,y], "Pixels are not identical at ({0},{1})", x, y); } } }