From ead983e00ea6415599a49049cf5dbb8772fe09ab Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 19:44:17 +0100 Subject: [PATCH 01/21] tests: add missing tests for MagickImage.AdaptiveResize --- .../MagickImageTests/TheAdaptiveResizeMethod.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheAdaptiveResizeMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheAdaptiveResizeMethod.cs index faf909a8eb..47db6c7a0e 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheAdaptiveResizeMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheAdaptiveResizeMethod.cs @@ -1,6 +1,7 @@ // Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. // Licensed under the Apache License, Version 2.0. +using System; using ImageMagick; using Xunit; @@ -10,6 +11,20 @@ public partial class MagickImageTests { public class TheAdaptiveResizeMethod { + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("width", () => image.AdaptiveResize(-1, 512)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("height", () => image.AdaptiveResize(512, -1)); + } + [Fact] public void ShouldNotEnlargeTheImage() { From e0a96fd74068907f2c1b49cd63f538cdc0f3f00f Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 20:06:26 +0100 Subject: [PATCH 02/21] tests: add missing tests for MagickImage.Chop* methods --- .../MagickImageTests/TheChopMethod.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheChopMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheChopMethod.cs index 723e5ec5ef..8905df7333 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheChopMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheChopMethod.cs @@ -29,4 +29,24 @@ public void ShouldChopTheImage() Assert.Equal(320, image.Height); } } + + public class TheChopHorizontalMethod + { + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.Builtin.Wizard); + Assert.Throws("width", () => image.ChopHorizontal(-1, -1)); + } + } + + public class TheChopVerticalMethod + { + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.Builtin.Wizard); + Assert.Throws("height", () => image.ChopVertical(-1, -1)); + } + } } From 2946dd5bb3babd892bb87a6d6b5cb02abae564a3 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 20:40:36 +0100 Subject: [PATCH 03/21] tests: add missing tests for MagickImage.Clone method --- .../MagickImageTests/TheCloneMethod.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheCloneMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheCloneMethod.cs index 7cd95c16b5..9d62051c72 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheCloneMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheCloneMethod.cs @@ -1,6 +1,7 @@ // Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. // Licensed under the Apache License, Version 2.0. +using System; using ImageMagick; using Xunit; @@ -10,6 +11,34 @@ public partial class MagickImageTests { public class TheCloneMethod { + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("width", () => image.Clone(-1, 64)); + } + + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("width", () => image.Clone(0, 0, -1, 64)); + } + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("height", () => image.Clone(32, -1)); + } + + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("height", () => image.Clone(0, 0, 32, -1)); + } + } + [Fact] public void ShouldThrowExceptionWhenNoImageIsRead() { From edd18e030067e2ae17460dced799a9ffb2123815 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 20:59:05 +0100 Subject: [PATCH 04/21] tests: add missing tests for MagickImage.Crop method --- .../MagickImageTests/TheCropMethod.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheCropMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheCropMethod.cs index 9847dfac79..2d9039d5a6 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheCropMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheCropMethod.cs @@ -1,6 +1,7 @@ // Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. // Licensed under the Apache License, Version 2.0. +using System; using ImageMagick; using Xunit; @@ -10,6 +11,34 @@ public partial class MagickImageTests { public class TheCropMethod { + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("width", () => image.Crop(-1, 50)); + } + + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("width", () => image.Crop(-1, 50, Gravity.Center)); + } + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("height", () => image.Crop(40, -1)); + } + + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("height", () => image.Crop(40, -1, Gravity.Center)); + } + } + [Fact] public void ShouldSetImageToCorrectDimensions() { From 92d5383311046515783016237676c66fc0fc1cd7 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 21:14:29 +0100 Subject: [PATCH 05/21] tests: add missing tests for MagickImage.Extent method --- .../MagickImageTests/TheExtentMethod.cs | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheExtentMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheExtentMethod.cs index 7da4f1c535..e721e84e46 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheExtentMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheExtentMethod.cs @@ -13,6 +13,64 @@ public class TheExtentMethod { public class WithWidthAndHeight { + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("width", () => image.Extent(-1, 3)); + } + + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("width", () => image.Extent(2, 3, -1, 3)); + } + + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("width", () => image.Extent(-1, 3, MagickColors.Purple)); + } + + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("width", () => image.Extent(-1, 3, Gravity.Center)); + } + + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("width", () => image.Extent(-1, 3, Gravity.Center, MagickColors.Purple)); + } + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("height", () => image.Extent(2, -1)); + } + + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("height", () => image.Extent(2, 3, 2, -1)); + } + + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("height", () => image.Extent(2, -1, MagickColors.Purple)); + } + + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("height", () => image.Extent(2, -1, Gravity.Center)); + } + + { + using var image = new MagickImage(MagickColors.Black, 1, 1); + Assert.Throws("height", () => image.Extent(2, -1, Gravity.Center, MagickColors.Purple)); + } + } + [Fact] public void ShouldExtentTheImage() { From 066b8f1fc2aa2d91da5493698b606abcaedecb21 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 21:34:53 +0100 Subject: [PATCH 06/21] tests: add missing tests for MagickImage.Frame method --- .../MagickImageTests/TheFrameMethod.cs | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheFrameMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheFrameMethod.cs index 23b49b1de8..0ab0831b40 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheFrameMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheFrameMethod.cs @@ -1,6 +1,7 @@ // Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. // Licensed under the Apache License, Version 2.0. +using System; using ImageMagick; using Xunit; @@ -10,6 +11,34 @@ public partial class MagickImageTests { public class TheFrameMethod { + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("width", () => image.Frame(-1, 100)); + } + + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("width", () => image.Frame(-1, 100, 6, 6)); + } + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("height", () => image.Frame(100, -1)); + } + + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("height", () => image.Frame(100, -1, 6, 6)); + } + } + [Fact] public void ShouldFrameTheImage() { @@ -42,10 +71,7 @@ public void ShouldNotMakeImageLargerWithBevel() public void ShouldThrowExceptionWhenFrameIsLessThanImageSize() { using var image = new MagickImage(Files.MagickNETIconPNG); - var exception = Assert.Throws(() => - { - image.Frame(6, 6, 7, 7); - }); + var exception = Assert.Throws(() => { image.Frame(6, 6, 7, 7); }); Assert.Contains("frame is less than image size", exception.Message); } From 51dcfb2e7192d64bd419af26e668bc0229a711d3 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 21:45:44 +0100 Subject: [PATCH 07/21] tests: add missing tests for MagickImage.InterpolativeResize method --- .../TheInterpolativeResizeMethod.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheInterpolativeResizeMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheInterpolativeResizeMethod.cs index 03fb07f5f3..f8dbc908fe 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheInterpolativeResizeMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheInterpolativeResizeMethod.cs @@ -1,6 +1,7 @@ // Copyright Dirk Lemstra https://github.com/dlemstra/Magick.NET. // Licensed under the Apache License, Version 2.0. +using System; using ImageMagick; using Xunit; @@ -10,6 +11,20 @@ public partial class MagickImageTests { public class TheInterpolativeResizeMethod { + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.RedPNG); + Assert.Throws("width", () => image.InterpolativeResize(-1, 32, PixelInterpolateMethod.Mesh)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.RedPNG); + Assert.Throws("height", () => image.InterpolativeResize(32, -1, PixelInterpolateMethod.Mesh)); + } + [Fact] public void ShouldResizeTheImage() { From 7100af372b36286e7e979390d4218a8110ac48f7 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:07:29 +0100 Subject: [PATCH 08/21] tests: add missing tests for MagickImage.LiquidRescale method --- .../TheLiquidRescaleMethod.cs | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheLiquidRescaleMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheLiquidRescaleMethod.cs index fa1b16e1bd..eacf49fdc4 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheLiquidRescaleMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheLiquidRescaleMethod.cs @@ -22,6 +22,20 @@ public void ShouldResizeTheImage() Assert.Equal(64, image.Width); Assert.Equal(64, image.Height); } + + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("width", () => image.LiquidRescale(-1, 64)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("height", () => image.LiquidRescale(64, -1)); + } } public class WithWidthAndHeightAndRigidity @@ -42,6 +56,20 @@ public void ShouldApplyTheRigidity() Assert.InRange(image.Compare(otherWithRigidity, ErrorMetric.RootMeanSquared), 0.3, 0.4); } + + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("width", () => image.LiquidRescale(-1, 64, 5.0, 0.0)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.MagickNETIconPNG); + Assert.Throws("height", () => image.LiquidRescale(64, -1, 5.0, 0.0)); + } } public class WithGeometry From bbd18b9103a81837119ee7bd893d14466ae047c9 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:13:08 +0100 Subject: [PATCH 09/21] tests: add missing tests for MagickImage.Resize method --- .../MagickImageTests/TheResizeMethod.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheResizeMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheResizeMethod.cs index 6a0ef8f42b..183b40e3a5 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheResizeMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheResizeMethod.cs @@ -115,6 +115,20 @@ public void ShouldResizeTheImage() public class WithWidthAndHeight { + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.RedPNG); + Assert.Throws("width", () => image.Resize(-1, 32)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.RedPNG); + Assert.Throws("height", () => image.Resize(32, -1)); + } + [Fact] public void ShouldResizeTheImage() { From 606ddcab1a7a25f9382e81ebee765ec2c6b453cc Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:16:10 +0100 Subject: [PATCH 10/21] tests: add missing tests for MagickImage.Sample method --- .../MagickImageTests/TheSampleMethod.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheSampleMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheSampleMethod.cs index 676bffd1ee..bfd2bb21e0 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheSampleMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheSampleMethod.cs @@ -19,6 +19,20 @@ public void ShouldThrowExceptionWhenGeometryIsNull() Assert.Throws("geometry", () => image.Sample(null)); } + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("width", () => image.Sample(-1, 400)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("height", () => image.Sample(400, -1)); + } + [Fact] public void ShouldResizeTheImage() { From 3e99743fef60be21f191528e9fdbba5afd94ef54 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:17:25 +0100 Subject: [PATCH 11/21] tests: add missing tests for MagickImage.Scale method --- .../MagickImageTests/TheScaleMethod.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheScaleMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheScaleMethod.cs index 5664507042..345ac1f543 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheScaleMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheScaleMethod.cs @@ -19,6 +19,20 @@ public void ShouldThrowExceptionWhenGeometryIsNull() Assert.Throws("geometry", () => image.Scale(null)); } + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("width", () => image.Scale(-1, 400)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("height", () => image.Scale(400, -1)); + } + [Fact] public void ShouldResizeTheImage() { From 55db3542929e6dcf078fdae4fc8ecb3e7b14bd9a Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:19:35 +0100 Subject: [PATCH 12/21] tests: add missing tests for MagickImage.Thumbnail method --- .../MagickImageTests/TheThumbnailMethod.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheThumbnailMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheThumbnailMethod.cs index 741f3730d7..53c8bd5c30 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheThumbnailMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheThumbnailMethod.cs @@ -19,6 +19,20 @@ public void ShouldThrowExceptionWhenGeometryIsNull() Assert.Throws("geometry", () => image.Thumbnail(null)); } + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("width", () => image.Thumbnail(-1, 100)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("height", () => image.Thumbnail(100, -1)); + } + [Fact] public void ShouldThrowExceptionWhenPercentageWidthIsNegative() { From f5ca17ec9d013cad5a1b265c1b4f7990e33bc98d Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:28:59 +0100 Subject: [PATCH 13/21] tests: add missing tests for MagickGeometryFactory.Create method --- .../TheCreateMethod.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/Magick.NET.Tests/Factories/MagickGeometryFactoryTests/TheCreateMethod.cs b/tests/Magick.NET.Tests/Factories/MagickGeometryFactoryTests/TheCreateMethod.cs index 0fde91708a..076ed260ae 100644 --- a/tests/Magick.NET.Tests/Factories/MagickGeometryFactoryTests/TheCreateMethod.cs +++ b/tests/Magick.NET.Tests/Factories/MagickGeometryFactoryTests/TheCreateMethod.cs @@ -218,5 +218,25 @@ public void ShouldSetXAndYAndIsPercentage() Assert.Equal(20, geometry.Height); Assert.True(geometry.IsPercentage); } + + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + var factory = new MagickGeometryFactory(); + + Assert.Throws("width", () => factory.Create(-1)); + Assert.Throws("width", () => factory.Create(-1, 10)); + Assert.Throws("width", () => factory.Create(0, 0, -1, 10)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + var factory = new MagickGeometryFactory(); + + Assert.Throws("height", () => factory.Create(-1)); + Assert.Throws("height", () => factory.Create(5, -1)); + Assert.Throws("height", () => factory.Create(0, 0, 5, -1)); + } } } From cd8e3c200b1f530056325f0319b9c7b399a0f4bb Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:45:28 +0100 Subject: [PATCH 14/21] tests: add missing tests for MagickImage.InterpolativeResize method --- .../TheInterpolativeResizeMethod.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheInterpolativeResizeMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheInterpolativeResizeMethod.cs index f8dbc908fe..c6a2391c74 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheInterpolativeResizeMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheInterpolativeResizeMethod.cs @@ -25,6 +25,27 @@ public void ShouldThrowExceptionWhenHeightIsNegative() Assert.Throws("height", () => image.InterpolativeResize(32, -1, PixelInterpolateMethod.Mesh)); } + [Fact] + public void ShouldThrowExceptionWhenPercentageIsNegative() + { + using var image = new MagickImage(Files.RedPNG); + Assert.Throws("percentageWidth", () => image.InterpolativeResize(new Percentage(-1), PixelInterpolateMethod.Mesh)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageWidthIsNegative() + { + using var image = new MagickImage(Files.RedPNG); + Assert.Throws("percentageWidth", () => image.InterpolativeResize(new Percentage(-1), new Percentage(10), PixelInterpolateMethod.Mesh)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageHeightIsNegative() + { + using var image = new MagickImage(Files.RedPNG); + Assert.Throws("percentageHeight", () => image.InterpolativeResize(new Percentage(10), new Percentage(-1), PixelInterpolateMethod.Mesh)); + } + [Fact] public void ShouldResizeTheImage() { From 39cddc5369ee3850ff9d2b76ffda5f0c10db9f6f Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:52:39 +0100 Subject: [PATCH 15/21] tests: add missing tests for MagickImage.Resize method --- .../MagickImageTests/TheResizeMethod.cs | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheResizeMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheResizeMethod.cs index 183b40e3a5..0aaf29e391 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheResizeMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheResizeMethod.cs @@ -99,7 +99,27 @@ public void ShouldThrowExceptionWhenPercentageIsNegative() var percentage = new Percentage(-0.5); using var image = new MagickImage(Files.MagickNETIconPNG); - Assert.Throws("percentage", () => image.Resize(percentage)); + Assert.Throws("percentageWidth", () => image.Resize(percentage)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageWidthIsNegative() + { + var percentageWidth = new Percentage(-0.5); + var percentageHeight = new Percentage(10); + using var image = new MagickImage(Files.MagickNETIconPNG); + + Assert.Throws("percentageWidth", () => image.Resize(percentageWidth, percentageHeight)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageHeightIsNegative() + { + var percentageWidth = new Percentage(10); + var percentageHeight = new Percentage(-0.5); + using var image = new MagickImage(Files.MagickNETIconPNG); + + Assert.Throws("percentageHeight", () => image.Resize(percentageWidth, percentageHeight)); } [Fact] From 3313c7f16a4b542b9f9c2f00cb6452afe93bdee2 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 22:56:11 +0100 Subject: [PATCH 16/21] tests: add missing tests for MagickImage.Sample method --- .../MagickImageTests/TheSampleMethod.cs | 110 ++++++++++++------ 1 file changed, 74 insertions(+), 36 deletions(-) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheSampleMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheSampleMethod.cs index bfd2bb21e0..511d5138e2 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheSampleMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheSampleMethod.cs @@ -11,56 +11,94 @@ public partial class MagickImageTests { public class TheSampleMethod { - [Fact] - public void ShouldThrowExceptionWhenGeometryIsNull() + public class WithGeometry { - using var image = new MagickImage(); + [Fact] + public void ShouldThrowExceptionWhenGeometryIsNull() + { + using var image = new MagickImage(); - Assert.Throws("geometry", () => image.Sample(null)); - } + Assert.Throws("geometry", () => image.Sample(null)); + } - [Fact] - public void ShouldThrowExceptionWhenWidthIsNegative() - { - using var image = new MagickImage(Files.Builtin.Logo); - Assert.Throws("width", () => image.Sample(-1, 400)); - } + [Fact] + public void ShouldUseTheSpecifiedGeometry() + { + using var image = new MagickImage(Files.Builtin.Logo); + image.Sample(new MagickGeometry(300, 300)); - [Fact] - public void ShouldThrowExceptionWhenHeightIsNegative() - { - using var image = new MagickImage(Files.Builtin.Logo); - Assert.Throws("height", () => image.Sample(400, -1)); + Assert.Equal(300, image.Width); + Assert.Equal(225, image.Height); + } } - [Fact] - public void ShouldResizeTheImage() + public class WithWidthAndHeight { - using var image = new MagickImage(Files.Builtin.Logo); - image.Sample(400, 400); + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("width", () => image.Sample(-1, 400)); + } - Assert.Equal(400, image.Width); - Assert.Equal(300, image.Height); - } + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("height", () => image.Sample(400, -1)); + } - [Fact] - public void ShouldUseTheSpecifiedGeometry() - { - using var image = new MagickImage(Files.Builtin.Logo); - image.Sample(new MagickGeometry(300, 300)); + [Fact] + public void ShouldResizeTheImage() + { + using var image = new MagickImage(Files.Builtin.Logo); + image.Sample(400, 400); - Assert.Equal(300, image.Width); - Assert.Equal(225, image.Height); + Assert.Equal(400, image.Width); + Assert.Equal(300, image.Height); + } } - [Fact] - public void ShouldUseTheSpecifiedPercentage() + public class WithPercentage { - using var image = new MagickImage(Files.Builtin.Logo); - image.Sample(new Percentage(50)); + [Fact] + public void ShouldThrowExceptionWhenPercentageIsNegative() + { + var percentage = new Percentage(-0.5); + using var image = new MagickImage(Files.Builtin.Logo); + + Assert.Throws("percentageWidth", () => image.Sample(percentage)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageWidthIsNegative() + { + var percentageWidth = new Percentage(-0.5); + var percentageHeight = new Percentage(10); + using var image = new MagickImage(Files.Builtin.Logo); + + Assert.Throws("percentageWidth", () => image.Sample(percentageWidth, percentageHeight)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageHeightIsNegative() + { + var percentageWidth = new Percentage(10); + var percentageHeight = new Percentage(-0.5); + using var image = new MagickImage(Files.Builtin.Logo); + + Assert.Throws("percentageHeight", () => image.Sample(percentageWidth, percentageHeight)); + } + + [Fact] + public void ShouldUseTheSpecifiedPercentage() + { + using var image = new MagickImage(Files.Builtin.Logo); + image.Sample(new Percentage(50)); - Assert.Equal(320, image.Width); - Assert.Equal(240, image.Height); + Assert.Equal(320, image.Width); + Assert.Equal(240, image.Height); + } } } } From 37dc5616c09d7d2ecdd4b9992de0b393c23aebf9 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 23:01:30 +0100 Subject: [PATCH 17/21] tests: add missing tests for MagickImage.Scale method --- .../MagickImageTests/TheScaleMethod.cs | 150 +++++++++++------- 1 file changed, 94 insertions(+), 56 deletions(-) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheScaleMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheScaleMethod.cs index 345ac1f543..5b77ab2f77 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheScaleMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheScaleMethod.cs @@ -11,69 +11,107 @@ public partial class MagickImageTests { public class TheScaleMethod { - [Fact] - public void ShouldThrowExceptionWhenGeometryIsNull() + public class WithGeometry { - using var image = new MagickImage(); - - Assert.Throws("geometry", () => image.Scale(null)); - } - - [Fact] - public void ShouldThrowExceptionWhenWidthIsNegative() - { - using var image = new MagickImage(Files.Builtin.Logo); - Assert.Throws("width", () => image.Scale(-1, 400)); - } - - [Fact] - public void ShouldThrowExceptionWhenHeightIsNegative() - { - using var image = new MagickImage(Files.Builtin.Logo); - Assert.Throws("height", () => image.Scale(400, -1)); + [Fact] + public void ShouldThrowExceptionWhenGeometryIsNull() + { + using var image = new MagickImage(); + + Assert.Throws("geometry", () => image.Scale(null)); + } + + [Fact] + public void ShouldUseTheSpecifiedGeometry() + { + using var image = new MagickImage(Files.Builtin.Logo); + image.Scale(new MagickGeometry(300, 300)); + + Assert.Equal(300, image.Width); + Assert.Equal(225, image.Height); + } } - [Fact] - public void ShouldResizeTheImage() + public class WithWidthAndHeight { - using var image = new MagickImage(Files.Builtin.Logo); - image.Scale(400, 400); - - Assert.Equal(400, image.Width); - Assert.Equal(300, image.Height); + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("width", () => image.Scale(-1, 400)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("height", () => image.Scale(400, -1)); + } + + [Fact] + public void ShouldResizeTheImage() + { + using var image = new MagickImage(Files.Builtin.Logo); + image.Scale(400, 400); + + Assert.Equal(400, image.Width); + Assert.Equal(300, image.Height); + } } - [Fact] - public void ShouldUseTheSpecifiedGeometry() + public class WithPercentage { - using var image = new MagickImage(Files.Builtin.Logo); - image.Scale(new MagickGeometry(300, 300)); - - Assert.Equal(300, image.Width); - Assert.Equal(225, image.Height); - } - - [Fact] - public void ShouldUseTheSpecifiedPercentage() - { - using var image = new MagickImage(Files.Builtin.Logo); - image.Scale(new Percentage(50)); - - Assert.Equal(320, image.Width); - Assert.Equal(240, image.Height); - } - - [Fact] - public void ShouldUseSimpleResizeAlgorithm() - { - using var image = new MagickImage(Files.CirclePNG); - var color = MagickColor.FromRgba(255, 255, 255, 159); - - ColorAssert.Equal(color, image, image.Width / 2, image.Height / 2); - - image.Scale((Percentage)400); - - ColorAssert.Equal(color, image, image.Width / 2, image.Height / 2); + [Fact] + public void ShouldThrowExceptionWhenPercentageIsNegative() + { + var percentage = new Percentage(-0.5); + using var image = new MagickImage(Files.Builtin.Logo); + + Assert.Throws("percentageWidth", () => image.Scale(percentage)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageWidthIsNegative() + { + var percentageWidth = new Percentage(-0.5); + var percentageHeight = new Percentage(10); + using var image = new MagickImage(Files.Builtin.Logo); + + Assert.Throws("percentageWidth", () => image.Scale(percentageWidth, percentageHeight)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageHeightIsNegative() + { + var percentageWidth = new Percentage(10); + var percentageHeight = new Percentage(-0.5); + using var image = new MagickImage(Files.Builtin.Logo); + + Assert.Throws("percentageHeight", () => image.Scale(percentageWidth, percentageHeight)); + } + + [Fact] + public void ShouldUseTheSpecifiedPercentage() + { + using var image = new MagickImage(Files.Builtin.Logo); + image.Scale(new Percentage(50)); + + Assert.Equal(320, image.Width); + Assert.Equal(240, image.Height); + } + + [Fact] + public void ShouldUseSimpleResizeAlgorithm() + { + using var image = new MagickImage(Files.CirclePNG); + var color = MagickColor.FromRgba(255, 255, 255, 159); + + ColorAssert.Equal(color, image, image.Width / 2, image.Height / 2); + + image.Scale((Percentage)400); + + ColorAssert.Equal(color, image, image.Width / 2, image.Height / 2); + } } } } From d8f9fbbed1b144c43dfd81d1498d10c8020f08a6 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 23:09:29 +0100 Subject: [PATCH 18/21] tests: add missing tests for MagickImage.Thumbnail method --- .../MagickImageTests/TheThumbnailMethod.cs | 138 ++++++++++-------- 1 file changed, 78 insertions(+), 60 deletions(-) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheThumbnailMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheThumbnailMethod.cs index 53c8bd5c30..f4ee1dd72c 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheThumbnailMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheThumbnailMethod.cs @@ -11,73 +11,91 @@ public partial class MagickImageTests { public class TheThumbnailMethod { - [Fact] - public void ShouldThrowExceptionWhenGeometryIsNull() + public class WithGeometry { - using var image = new MagickImage(); - - Assert.Throws("geometry", () => image.Thumbnail(null)); - } - - [Fact] - public void ShouldThrowExceptionWhenWidthIsNegative() - { - using var image = new MagickImage(Files.Builtin.Logo); - Assert.Throws("width", () => image.Thumbnail(-1, 100)); + [Fact] + public void ShouldThrowExceptionWhenGeometryIsNull() + { + using var image = new MagickImage(); + Assert.Throws("geometry", () => image.Thumbnail(null)); + } + + [Fact] + public void ShouldResizeTheImageToTheCorrectDimensions() + { + var geometry = new MagickGeometry("1x1+0+0>"); + using var image = new MagickImage(Files.SnakewarePNG); + image.Thumbnail(geometry); + + Assert.Equal(1, image.Width); + Assert.Equal(1, image.Height); + } } - [Fact] - public void ShouldThrowExceptionWhenHeightIsNegative() + public class WithWidthAndHeight { - using var image = new MagickImage(Files.Builtin.Logo); - Assert.Throws("height", () => image.Thumbnail(100, -1)); + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("width", () => image.Thumbnail(-1, 100)); + } + + [Fact] + public void ShouldThrowExceptionWhenHeightIsNegative() + { + using var image = new MagickImage(Files.Builtin.Logo); + Assert.Throws("height", () => image.Thumbnail(100, -1)); + } + + [Fact] + public void ShouldCreateThumbnailOfTheImage() + { + using var image = new MagickImage(Files.SnakewarePNG); + image.Thumbnail(100, 100); + + Assert.Equal(100, image.Width); + Assert.Equal(23, image.Height); + } } - [Fact] - public void ShouldThrowExceptionWhenPercentageWidthIsNegative() + public class WithPercentage { - using var image = new MagickImage(); - - Assert.Throws("percentageWidth", () => image.Thumbnail(new Percentage(-1), new Percentage(1))); - } - - [Fact] - public void ShouldThrowExceptionWhenPercentageHeightIsNegative() - { - using var image = new MagickImage(); - - Assert.Throws("percentageHeight", () => image.Thumbnail(new Percentage(1), new Percentage(-1))); - } - - [Fact] - public void ShouldCreateThumbnailOfTheImage() - { - using var image = new MagickImage(Files.SnakewarePNG); - image.Thumbnail(100, 100); - - Assert.Equal(100, image.Width); - Assert.Equal(23, image.Height); - } - - [Fact] - public void ShouldCreateThumbnailOfTheImageWithTheSpecifiedPercentage() - { - using var image = new MagickImage(Files.Builtin.Logo); - image.Thumbnail(new Percentage(50)); - - Assert.Equal(320, image.Width); - Assert.Equal(240, image.Height); - } - - [Fact] - public void ShouldResizeTheImageToTheCorrectDimensions() - { - var geometry = new MagickGeometry("1x1+0+0>"); - using var image = new MagickImage(Files.SnakewarePNG); - image.Thumbnail(geometry); - - Assert.Equal(1, image.Width); - Assert.Equal(1, image.Height); + [Fact] + public void ShouldThrowExceptionWhenPercentageIsNegative() + { + var percentage = new Percentage(-0.5); + using var image = new MagickImage(); + Assert.Throws("percentageWidth", () => image.Thumbnail(percentage)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageWidthIsNegative() + { + var percentageWidth = new Percentage(-0.5); + var percentageHeight = new Percentage(10); + using var image = new MagickImage(); + Assert.Throws("percentageWidth", () => image.Thumbnail(percentageWidth, percentageHeight)); + } + + [Fact] + public void ShouldThrowExceptionWhenPercentageHeightIsNegative() + { + var percentageWidth = new Percentage(10); + var percentageHeight = new Percentage(-0.5); + using var image = new MagickImage(); + Assert.Throws("percentageHeight", () => image.Thumbnail(percentageWidth, percentageHeight)); + } + + [Fact] + public void ShouldCreateThumbnailOfTheImageWithTheSpecifiedPercentage() + { + using var image = new MagickImage(Files.Builtin.Logo); + image.Thumbnail(new Percentage(50)); + + Assert.Equal(320, image.Width); + Assert.Equal(240, image.Height); + } } } } From 8bf36ea5ad7c9fe3c029377cddbf89d7cc40817b Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 23:12:27 +0100 Subject: [PATCH 19/21] opti: remove redundant tests before creating MagickGeometry in MagickImage --- src/Magick.NET/MagickImage.cs | 35 ++--------------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/src/Magick.NET/MagickImage.cs b/src/Magick.NET/MagickImage.cs index 1e62ccfaab..d6d7ec1335 100644 --- a/src/Magick.NET/MagickImage.cs +++ b/src/Magick.NET/MagickImage.cs @@ -3458,8 +3458,6 @@ public void InterpolativeResize(IMagickGeometry geometry, PixelInterpolateMethod /// Thrown when an error is raised by ImageMagick. public void InterpolativeResize(Percentage percentage, PixelInterpolateMethod method) { - Throw.IfNegative(nameof(percentage), percentage); - var geometry = new MagickGeometry(percentage, percentage); InterpolativeResize(geometry, method); } @@ -3473,9 +3471,6 @@ public void InterpolativeResize(Percentage percentage, PixelInterpolateMethod me /// Thrown when an error is raised by ImageMagick. public void InterpolativeResize(Percentage percentageWidth, Percentage percentageHeight, PixelInterpolateMethod method) { - Throw.IfNegative(nameof(percentageWidth), percentageWidth); - Throw.IfNegative(nameof(percentageHeight), percentageHeight); - var geometry = new MagickGeometry(percentageWidth, percentageHeight); InterpolativeResize(geometry, method); } @@ -3931,8 +3926,6 @@ public void LiquidRescale(IMagickGeometry geometry) /// Thrown when an error is raised by ImageMagick. public void LiquidRescale(Percentage percentage) { - Throw.IfNegative(nameof(percentage), percentage); - var geometry = new MagickGeometry(percentage, percentage); LiquidRescale(geometry); } @@ -3945,9 +3938,6 @@ public void LiquidRescale(Percentage percentage) /// Thrown when an error is raised by ImageMagick. public void LiquidRescale(Percentage percentageWidth, Percentage percentageHeight) { - Throw.IfNegative(nameof(percentageWidth), percentageWidth); - Throw.IfNegative(nameof(percentageHeight), percentageHeight); - var geometry = new MagickGeometry(percentageWidth, percentageHeight); LiquidRescale(geometry); } @@ -3962,9 +3952,6 @@ public void LiquidRescale(Percentage percentageWidth, Percentage percentageHeigh /// Thrown when an error is raised by ImageMagick. public void LiquidRescale(Percentage percentageWidth, Percentage percentageHeight, double deltaX, double rigidity) { - Throw.IfNegative(nameof(percentageWidth), percentageWidth); - Throw.IfNegative(nameof(percentageHeight), percentageHeight); - var geometry = new MagickGeometry(percentageWidth, percentageHeight); _nativeInstance.LiquidRescale(geometry.ToString(), deltaX, rigidity); @@ -5520,8 +5507,6 @@ public void Resize(IMagickGeometry geometry) /// Thrown when an error is raised by ImageMagick. public void Resize(Percentage percentage) { - Throw.IfNegative(nameof(percentage), percentage); - var geometry = new MagickGeometry(percentage, percentage); Resize(geometry); } @@ -5534,9 +5519,6 @@ public void Resize(Percentage percentage) /// Thrown when an error is raised by ImageMagick. public void Resize(Percentage percentageWidth, Percentage percentageHeight) { - Throw.IfNegative(nameof(percentageWidth), percentageWidth); - Throw.IfNegative(nameof(percentageHeight), percentageHeight); - var geometry = new MagickGeometry(percentageWidth, percentageHeight); Resize(geometry); } @@ -5615,12 +5597,7 @@ public void Sample(Percentage percentage) /// The percentage of the height. /// Thrown when an error is raised by ImageMagick. public void Sample(Percentage percentageWidth, Percentage percentageHeight) - { - Throw.IfNegative(nameof(percentageWidth), percentageWidth); - Throw.IfNegative(nameof(percentageHeight), percentageHeight); - - Sample(new MagickGeometry(percentageWidth, percentageHeight)); - } + => Sample(new MagickGeometry(percentageWidth, percentageHeight)); /// /// Resize image by using simple ratio algorithm. @@ -5661,12 +5638,7 @@ public void Scale(Percentage percentage) /// The percentage of the height. /// Thrown when an error is raised by ImageMagick. public void Scale(Percentage percentageWidth, Percentage percentageHeight) - { - Throw.IfNegative(nameof(percentageWidth), percentageWidth); - Throw.IfNegative(nameof(percentageHeight), percentageHeight); - - Scale(new MagickGeometry(percentageWidth, percentageHeight)); - } + => Scale(new MagickGeometry(percentageWidth, percentageHeight)); /// /// Segment (coalesce similar image components) by analyzing the histograms of the color @@ -6512,9 +6484,6 @@ public void Thumbnail(Percentage percentage) /// Thrown when an error is raised by ImageMagick. public void Thumbnail(Percentage percentageWidth, Percentage percentageHeight) { - Throw.IfNegative(nameof(percentageWidth), percentageWidth); - Throw.IfNegative(nameof(percentageHeight), percentageHeight); - var geometry = new MagickGeometry(percentageWidth, percentageHeight); Thumbnail(geometry); } From eee56f6229586f81c691a946f538912d89abc43c Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 23:18:59 +0100 Subject: [PATCH 20/21] tests: add missing tests for MagickGeometryFactory.Create method --- .../TheCreateMethod.cs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tests/Magick.NET.Tests/Factories/MagickGeometryFactoryTests/TheCreateMethod.cs b/tests/Magick.NET.Tests/Factories/MagickGeometryFactoryTests/TheCreateMethod.cs index 076ed260ae..71ac6a87ac 100644 --- a/tests/Magick.NET.Tests/Factories/MagickGeometryFactoryTests/TheCreateMethod.cs +++ b/tests/Magick.NET.Tests/Factories/MagickGeometryFactoryTests/TheCreateMethod.cs @@ -220,11 +220,18 @@ public void ShouldSetXAndYAndIsPercentage() } [Fact] - public void ShouldThrowExceptionWhenWidthIsNegative() + public void ShouldThrowExceptionWhenWidthAndHeightIsNegative() { var factory = new MagickGeometryFactory(); Assert.Throws("width", () => factory.Create(-1)); + } + + [Fact] + public void ShouldThrowExceptionWhenWidthIsNegative() + { + var factory = new MagickGeometryFactory(); + Assert.Throws("width", () => factory.Create(-1, 10)); Assert.Throws("width", () => factory.Create(0, 0, -1, 10)); } @@ -234,9 +241,17 @@ public void ShouldThrowExceptionWhenHeightIsNegative() { var factory = new MagickGeometryFactory(); - Assert.Throws("height", () => factory.Create(-1)); Assert.Throws("height", () => factory.Create(5, -1)); Assert.Throws("height", () => factory.Create(0, 0, 5, -1)); } + + [Fact] + public void ShouldThrowExceptionWhenPercentageIsNegative() + { + var factory = new MagickGeometryFactory(); + + Assert.Throws("percentageWidth", () => factory.Create(new Percentage(-1), new Percentage(10))); + Assert.Throws("percentageHeight", () => factory.Create(new Percentage(10), new Percentage(-1))); + } } } From 8a88ce012f9e5a9b52b9d70fb7a7b34a4ae3e909 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Thu, 29 Feb 2024 23:23:52 +0100 Subject: [PATCH 21/21] tests: fix tests for MagickImage.LiquidRescale method --- .../MagickImageTests/TheLiquidRescaleMethod.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/Magick.NET.Tests/MagickImageTests/TheLiquidRescaleMethod.cs b/tests/Magick.NET.Tests/MagickImageTests/TheLiquidRescaleMethod.cs index eacf49fdc4..daa19999b5 100644 --- a/tests/Magick.NET.Tests/MagickImageTests/TheLiquidRescaleMethod.cs +++ b/tests/Magick.NET.Tests/MagickImageTests/TheLiquidRescaleMethod.cs @@ -102,25 +102,27 @@ public class WithPercentage [Fact] public void ShouldThrowExceptionWhenPercentageIsNegative() { + var percentage = new Percentage(-1); using var image = new MagickImage(Files.MagickNETIconPNG); - - Assert.Throws("percentage", () => image.LiquidRescale(new Percentage(-1))); + Assert.Throws("percentageWidth", () => image.LiquidRescale(percentage)); } [Fact] public void ShouldThrowExceptionWhenPercentageWidthIsNegative() { + var percentageWidth = new Percentage(-1); + var percentageHeight = new Percentage(1); using var image = new MagickImage(Files.MagickNETIconPNG); - - Assert.Throws("percentageWidth", () => image.LiquidRescale(new Percentage(-1), new Percentage(1))); + Assert.Throws("percentageWidth", () => image.LiquidRescale(percentageWidth, percentageHeight)); } [Fact] public void ShouldThrowExceptionWhenPercentageHeightIsNegative() { + var percentageWidth = new Percentage(1); + var percentageHeight = new Percentage(-1); using var image = new MagickImage(Files.MagickNETIconPNG); - - Assert.Throws("percentageHeight", () => image.LiquidRescale(new Percentage(1), new Percentage(-1))); + Assert.Throws("percentageHeight", () => image.LiquidRescale(percentageWidth, percentageHeight)); } [Fact]