123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using PixiEditor.Models.DataHolders;
- using PixiEditor.Models.Layers;
- using PixiEditor.Models.Position;
- using Xunit;
- namespace PixiEditorTests.ModelsTests.LayersTests
- {
- public class LayerTests
- {
- [Fact]
- public void TestThatEmptyLayerGeneratesCorrectly()
- {
- Layer layer = new Layer("layer");
- Assert.Equal("layer", layer.Name);
- Assert.Equal(0, layer.Width);
- Assert.Equal(0, layer.Height);
- Assert.Equal(1, layer.LayerBitmap.PixelWidth);
- Assert.Equal(1, layer.LayerBitmap.PixelHeight);
- }
- [Fact]
- public void TestThatEmptyLayerWithSizeGeneratesCorrectly()
- {
- Layer layer = new Layer("layer", 10, 10);
- Assert.Equal("layer", layer.Name);
- Assert.Equal(10, layer.Width);
- Assert.Equal(10, layer.Height);
- Assert.Equal(10, layer.LayerBitmap.PixelWidth);
- Assert.Equal(10, layer.LayerBitmap.PixelHeight);
- }
- [Fact]
- public void TestThatLayerFromBitmapGeneratesCorrectly()
- {
- WriteableBitmap bmp = BitmapFactory.New(10, 10);
- Layer layer = new Layer("layer", bmp);
- Assert.Equal("layer", layer.Name);
- Assert.Equal(10, layer.Width);
- Assert.Equal(10, layer.Height);
- Assert.Equal(10, layer.LayerBitmap.PixelWidth);
- Assert.Equal(10, layer.LayerBitmap.PixelHeight);
- }
- [Fact]
- public void TestThatCloneClonesCorrectly()
- {
- Layer layer = new Layer("test", 5, 2);
- Layer clone = layer.Clone();
- Assert.Equal(layer.Name, clone.Name);
- Assert.Equal(layer.Offset, clone.Offset);
- Assert.Equal(layer.Width, clone.Width);
- Assert.Equal(layer.Height, clone.Height);
- Assert.Equal(layer.MaxHeight, clone.MaxHeight);
- Assert.Equal(layer.MaxWidth, clone.MaxWidth);
- Assert.Equal(layer.Opacity, clone.Opacity);
- Assert.Equal(layer.IsVisible, clone.IsVisible);
- Assert.Equal(layer.IsRenaming, clone.IsRenaming);
- Assert.Equal(layer.ConvertBitmapToBytes(), clone.ConvertBitmapToBytes());
- }
- [Fact]
- public void TestThatCloneIsMakingDeepCopyOfBitmap()
- {
- Layer layer = new Layer("test", 5, 2);
- Layer clone = layer.Clone();
- clone.LayerBitmap.SetPixel(0, 0, Colors.Green); // Actually we are checking if modifying clone bitmap does not affect original
- Assert.NotEqual(Colors.Green, layer.GetPixel(0, 0));
- }
- [Fact]
- public void TestThatResizeResizesBitmap()
- {
- Layer layer = new Layer("layer", 1, 1);
- layer.SetPixel(new Coordinates(0, 0), Colors.Black);
- layer.Resize(2, 2, 2, 2);
- Assert.Equal(2, layer.Width);
- Assert.Equal(2, layer.Height);
- Assert.Equal(2, layer.MaxWidth);
- Assert.Equal(2, layer.MaxHeight);
- // 4 is new area of bitmap
- for (int y = 0; y < layer.Height; y++)
- {
- for (int x = 0; x < layer.Width; x++)
- {
- Assert.Equal(Colors.Black, layer.GetPixel(x, y));
- }
- }
- }
- [Fact]
- public void TestThatGetPixelReturnsTransparentIfOutOfBounds()
- {
- Layer layer = new Layer("layer");
- Assert.Equal(0, layer.GetPixel(-1, 999).A);
- }
- [Fact]
- public void TestThatSetPixelsSetsPixels() // This also tests if Dynamic Resize works
- {
- Coordinates[] pixels = { new Coordinates(4, 2), new Coordinates(0, 0), new Coordinates(15, 2) };
- Layer layer = new Layer("layer");
- layer.SetPixels(BitmapPixelChanges.FromSingleColoredArray(pixels, Colors.Green));
- for (int i = 0; i < pixels.Length; i++)
- {
- Assert.Equal(Colors.Green, layer.GetPixelWithOffset(pixels[i].X, pixels[i].Y));
- }
- }
- [Fact]
- public void TestThatClipCanvasResizesBitmapCorrectly()
- {
- Layer layer = new Layer("layer", 10, 10);
- layer.SetPixel(new Coordinates(4, 4), Colors.Blue);
- layer.ClipCanvas();
- Assert.Equal(1, layer.Width);
- Assert.Equal(1, layer.Height);
- Assert.Equal(Colors.Blue, layer.GetPixel(0, 0));
- }
- }
- }
|