Пример #1
0
        public void TryInvert_Should_ReturnTrue_When_TimeSpan()
        {
            var value = TimeSpan.FromHours(3);

            Assert.True(CalculateUtilities.TryInvert(value, out var _result));
            Assert.Equal(value * -1, _result);
        }
Пример #2
0
        public void TryInvert_Should_ReturnTrue_When_Int()
        {
            const int value = 3;

            Assert.True(CalculateUtilities.TryInvert(value, out var _result));
            Assert.Equal(value * -1, _result);
        }
Пример #3
0
        public void TryInvert_Should_ReturnTrue_When_Double()
        {
            const double value = 3.2;

            Assert.True(CalculateUtilities.TryInvert(value, out var _result));
            Assert.True(CompareUtilities.EqualsWithinTolerance(value * -1, _result, 6));
        }
        /// <summary>
        /// Initializes an instance of <see cref="PropertyMutation"/>
        /// </summary>
        /// <param name="value"></param>
        /// <param name="propertySelector"></param>
        /// <exception cref="ArgumentException">Throws when <see cref="TValue"/> not invertable.</exception>
        public PropertyMutation(
            TValue value,
            Expression <Func <T, TValue> > propertySelector)
        {
            PropertySelector = propertySelector;
            Value            = value;

            if (!CalculateUtilities.TryInvert(value, out var _invertValue))
            {
                throw new ArgumentException($"{nameof(value)} is not invertable.", nameof(value));
            }

            _valueAction = propertySelector.ToAddAction(value);

            _revertValueAction = propertySelector.ToAddAction(_invertValue);
        }
Пример #5
0
        public void TryInvert_Should_ReturnFalse_When_String()
        {
            const string value = "String";

            Assert.False(CalculateUtilities.TryInvert(value, out _));
        }