public void ApplyTax_WithSalesTaxOf10Percent_ReturnCalculatedTax()
        {
            RoundToNearestMultipleCalculator roundToNearest = new RoundToNearestMultipleCalculator(0.05);
            BasicSalesTax basicSalesTax = new BasicSalesTax(10, roundToNearest);
            var           unitPrice     = 14.99;
            double        expected      = 1.5;
            var           actual        = basicSalesTax.ApplyTax(unitPrice);

            Assert.AreEqual(expected, actual);

            unitPrice = 14.99;
            expected  = 1.5;
            actual    = basicSalesTax.ApplyTax(unitPrice);
            Assert.AreEqual(expected, actual);
        }
        public void RoundUp_PrecisionIs005_ReturnNearestUpperValue()
        {
            RoundToNearestMultipleCalculator roundToNearest = new RoundToNearestMultipleCalculator(0.05);
            var number   = 12.789;
            var expected = 12.80;
            var actual   = roundToNearest.RoundUp(number);

            Assert.AreEqual(expected, actual);
            number   = 12.735;
            expected = 12.75;
            actual   = roundToNearest.RoundUp(number);
            Assert.AreEqual(expected, actual);

            number   = 12.70;
            expected = 12.70;
            actual   = roundToNearest.RoundUp(number);
            Assert.AreEqual(expected, actual);
        }