public void Format_simplifies_the_fraction_if_the_format_specifier_indicates_it_should([Values("v", "s", "z", null)] string format)
        {
            var sut      = new FractionFormatter();
            var fraction = new Fraction(6, 8);

            Assert.That(() => sut.Format(fraction, format), Contains.Substring("3/4"));
        }
        public void Format_can_format_a_composite_fraction_as_a_vulgar_fraction()
        {
            var sut      = new FractionFormatter();
            var fraction = new Fraction(10, 3, 4);

            Assert.That(() => sut.Format(fraction, "v"), Is.EqualTo("43/4"));
        }
        public void Format_can_format_a_negative_fraction_using_leading_zero_format()
        {
            var sut      = new FractionFormatter();
            var fraction = new Fraction(-3, 4);

            Assert.That(() => sut.Format(fraction, "z"), Is.EqualTo("-0 3/4"));
        }
        public void Format_can_format_a_negative_fraction_using_standard_format()
        {
            var sut      = new FractionFormatter();
            var fraction = new Fraction(-3, 4);

            Assert.That(() => sut.Format(fraction), Is.EqualTo("-3/4"));
        }
        public void Format_can_format_a_composite_fraction_using_standard_format()
        {
            var sut      = new FractionFormatter();
            var fraction = new Fraction(10, 3, 4);

            Assert.That(() => sut.Format(fraction), Is.EqualTo("10 3/4"));
        }
        public void Format_does_not_simplift_the_fraction_if_the_format_specifier_indicates_it_shouldnt([Values("S", "Z")] string format)
        {
            var sut      = new FractionFormatter();
            var fraction = new Fraction(6, 8);

            Assert.That(() => sut.Format(fraction, format), Contains.Substring("6/8"));
        }