public NumericRepresentationValue Simplify(NumericRepresentation representation, IEnumerable<UnitOfMeasureComponent> components, double value) 
        {
            var finalValue = value;
            var unitOfMeasureComponents = new Dictionary<string, UnitOfMeasureComponent>();
            foreach (var component in components)
            {
                finalValue = SimplifyComponent(component, unitOfMeasureComponents, finalValue);
            }

            var baseNumber = CombineComponents(unitOfMeasureComponents.Values.ToList(), finalValue);
            return new NumericRepresentationValue(representation, baseNumber.UnitOfMeasure, baseNumber);
        }
 public static NumericRepresentationValue Multiply(this NumericRepresentationValue numericRepresentationValue, NumericRepresentationValue right, NumericRepresentation numericRepresentation)
 {
     var product = numericRepresentationValue.Multiply(right);
     return new NumericRepresentationValue(numericRepresentation, product.Value);
 }
 public static NumericRepresentationValue Divide(this NumericRepresentationValue numericRepresentationValue, NumericRepresentationValue denominator, NumericRepresentation numericRepresentation)
 {
     var quotient = numericRepresentationValue.Value.Divide(denominator.Value);
     return new NumericRepresentationValue(numericRepresentation, quotient);
 }