/// <summary>
        /// Initializes a new instance of the <see cref="CartoonScript"/> class.
        /// </summary>
        /// <param name="method">The cartoon method to use.</param>
        public CartoonScript(CartoonMethod method)
        {
            if (method != CartoonMethod.Method1 && method != CartoonMethod.Method2 && method != CartoonMethod.Method3 && method != CartoonMethod.Method4)
            {
                throw new ArgumentException("Invalid cartoon method specified.", nameof(method));
            }

            _method = method;

            Reset();
        }
        private void AssertExecute(string input, string methodName, CartoonMethod method, Action <CartoonScript> action)
        {
            string inputFile = GetInputFile(input);

            /* LosslessCompress(inputFile); */

            using (var image = new MagickImage(inputFile))
            {
                var script = new CartoonScript(method);
                action(script);

                using (var scriptOutput = script.Execute(image))
                {
                    string outputFile = GetOutputFile(input, methodName);
                    AssertOutput(scriptOutput, outputFile);
                }
            }
        }