public void ConvertFromInvariantString_InvalidValue_ValueConverted(string value)
        {
            // Arrange
            var converter = new OffsetTypeConverter();

            // Act
            Action act = () => converter.ConvertFromInvariantString(value);

            // Assert
            act.Should().Throw <InvalidOperationException>();
        }
        public void ConvertFromInvariantString_ValidValue_ValueConverted(string value, Offset expected)
        {
            // Arrange
            var converter = new OffsetTypeConverter();

            // Act
            var converted = converter.ConvertFromInvariantString(value);

            // Assert
            converted.Should().BeOfType <Offset>().And.BeEquivalentTo(expected);
        }
        public void TryConvertPercentToOffset_ConvertingToken_SuccessAndResultConvertedCorrectly(string token, double expectedResult, bool expectedSuccess)
        {
            // Arrange
            var converter = new OffsetTypeConverter();

            // Act
            var success = converter.TryExtractOffset(token, out var result);

            // Assert
            success.Should().Be(expectedSuccess);
            result.Value.Should().Be(expectedResult);
        }
        public void TryConvertOffset_GivenValue_ProperStatusAndNumber(string input, bool expectedSuccess, double expectedValue)
        {
            // Arrange
            var converter = new OffsetTypeConverter();

            // Act
            var success = converter.TryExtractOffset(input, out var result);

            // Assert
            using (new AssertionScope())
            {
                success.Should().Be(expectedSuccess);
                result.Value.Should().Be(expectedValue);
            }
        }