public void When_ParseNotValidDouble()
        {
            var sut = new PermilleFormatter();

            var actual = sut.ParseDouble("a12‰");

            Assert.AreEqual(null, actual);
        }
        public void When_ParseDouble(string value, double?expected)
        {
            var sut = new PermilleFormatter();

            sut.FractionDigits = 2;

            var actual = sut.ParseDouble(value);

            Assert.AreEqual(expected, actual);
        }
        public void When_ParseDoubleAndIsDecimalPointAlwaysDisplayedSetTrue(string value, double?expected)
        {
            var sut = new PermilleFormatter();

            sut.FractionDigits = 2;
            sut.IsDecimalPointAlwaysDisplayed = true;

            var actual = sut.ParseDouble(value);

            Assert.AreEqual(expected, actual);
        }
        public void When_ParseDoubleMinusZero()
        {
            var  sut        = new PermilleFormatter();
            var  actual     = sut.ParseDouble("-0‰");
            bool isNegative = false;

            if (actual.HasValue)
            {
                isNegative = BitConverter.DoubleToInt64Bits(actual.Value) < 0;
            }

            Assert.AreEqual(true, isNegative);
        }
        public void When_ParseDoubleUsingSpeceficNumeralSystem(string numeralSystem)
        {
            var sut = new PermilleFormatter();

            sut.NumeralSystem = numeralSystem;

            var translator = new NumeralSystemTranslator {
                NumeralSystem = numeralSystem
            };
            var translated = translator.TranslateNumerals("1234567.89‰");

            var actual = sut.ParseDouble(translated);

            Assert.AreEqual(1234.56789, actual);
        }