public void Has_to_return_correct_value_for_product_of_two_values(decimal valueX, decimal valueY, decimal expected)
        {
            var calculatorValueX = new CalculatorValue(valueX, nameof(valueX));
            var calculatorValueY = new CalculatorValue(valueY, nameof(valueY));
            var expectedResult   = new CalculatorValue(expected, $"{nameof(valueX)} * {nameof(valueY)}");

            var actualResult = SystemUnderTests.Multiply(calculatorValueX, calculatorValueY);

            Assert.AreEqual(expectedResult.Value, actualResult.Value);
            Assert.AreEqual(expectedResult.Name, actualResult.Name);
        }
        public void Has_to_return_correct_value_for_product_of_several_values(IEnumerable <decimal> values
                                                                              , decimal expected
                                                                              , string name
                                                                              , string expectedName)
        {
            var calculatorValues = values.Select(v => new CalculatorValue(v, name));
            var actualResult     = SystemUnderTests.Multiply(calculatorValues);
            var expectedResult   = new CalculatorValue(expected, expectedName);

            Assert.AreEqual(expectedResult.Value, actualResult.Value);
            Assert.AreEqual(expectedResult.Name, actualResult.Name);
        }