public void TestClearBitmap() { Bitmap bitmap = GenerateRandomBitmap(63, 63); // Non-dibisible by 8 bitmap, used to test loop unrolling FastBitmap.ClearBitmap(bitmap, Color.Red); // Loop through the image checking the pixels now for (int y = 0; y < bitmap.Height; y++) { for (int x = 0; x < bitmap.Width; x++) { if (bitmap.GetPixel(x, y).ToArgb() != Color.Red.ToArgb()) { Assert.Fail( "Immediately after a call to FastBitmap.Clear(), all of the bitmap's pixels must be of the provided color"); } } } // Test an arbitratry color now FastBitmap.ClearBitmap(bitmap, Color.FromArgb(25, 12, 0, 42)); // Loop through the image checking the pixels now for (int y = 0; y < bitmap.Height; y++) { for (int x = 0; x < bitmap.Width; x++) { if (bitmap.GetPixel(x, y).ToArgb() != Color.FromArgb(25, 12, 0, 42).ToArgb()) { Assert.Fail( "Immediately after a call to FastBitmap.Clear(), all of the bitmap's pixels must be of the provided color"); } } } // Test instance call FastBitmap fastBitmap = new FastBitmap(bitmap); fastBitmap.Clear(Color.FromArgb(25, 12, 0, 42)); Assert.IsFalse(fastBitmap.Locked, "After a successfull call to .Clear() on a fast bitmap previously unlocked, the .Locked property must be false"); // Loop through the image checking the pixels now for (int y = 0; y < bitmap.Height; y++) { for (int x = 0; x < bitmap.Width; x++) { if (bitmap.GetPixel(x, y).ToArgb() != Color.FromArgb(25, 12, 0, 42).ToArgb()) { Assert.Fail( "Immediately after a call to FastBitmap.Clear(), all of the bitmap's pixels must be of the provided color"); } } } }