public void MathOperationsContainer_returns_keyword_of_unary_minus_operation_by_characteristics()
        {
            var mathOperationsContainer  = new MathOperationsContainer();
            var operationCharacteristics = new OperationCharacteristics("-", OperationType.Unary);

            var keyword = mathOperationsContainer.GetKeywordOrDefault(operationCharacteristics);

            Assert.Equal("~", keyword);
        }
        public void MathOperationsContainer_returns_default_keyword_for_unknown_value_and_unary()
        {
            var mathOperationsContainer  = new MathOperationsContainer();
            var operationCharacteristics = new OperationCharacteristics("&", OperationType.Unary);

            var keyword = mathOperationsContainer.GetKeywordOrDefault(operationCharacteristics);

            Assert.Null(keyword);
        }
        /// <summary>
        /// Getting the keyword of an operation by characteristics
        /// </summary>
        /// <param name="operationCharacteristics">Characteristics of a mathematical operation</param>
        /// <returns>Returns the keyword of an operation or default instance</returns>
        public string GetKeywordOrDefault(OperationCharacteristics operationCharacteristics)
        {
            if (operationCharacteristics.Type == OperationType.Binary &&
                ContainsOperation(operationCharacteristics.Value))
            {
                return(operationCharacteristics.Value);
            }

            if (operationCharacteristics.Type == OperationType.Unary &&
                operationCharacteristics.Value == "-")
            {
                return(UnaryMinusMathOperation.Keyword);
            }

            return(default(string));
        }