// Sets the formatters of NumberBoxes, regulates and corrects user input so it's easier to use private void SetNumberBoxFormatters() { // A basic NumberFormatter, used to regulate currency input by user IncrementNumberRounder currencyRounder = new IncrementNumberRounder { Increment = 0.01, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp }; DecimalFormatter currencyFormatter = new DecimalFormatter { IntegerDigits = 1, NumberRounder = currencyRounder }; // A number rounder to create whole numbers, we don't charge tuition for parts of children. IncrementNumberRounder wholeNumberRounder = new IncrementNumberRounder { Increment = 1, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp }; DecimalFormatter wholeNumberFormatter = new DecimalFormatter { IntegerDigits = 1, FractionDigits = 0, NumberRounder = wholeNumberRounder }; StandardTuitionNumberBox.NumberFormatter = currencyFormatter; MaximumTuitionNumberBox.NumberFormatter = currencyFormatter; YoungChildPriceNumberBox.NumberFormatter = currencyFormatter; OlderChildPriceNumberBox.NumberFormatter = currencyFormatter; SingleParentReductionNumberBox.NumberFormatter = wholeNumberFormatter; AgePivotNumberBox.NumberFormatter = wholeNumberFormatter; YoungChildMaxNumberBox.NumberFormatter = wholeNumberFormatter; OlderChildMaxNumberBox.NumberFormatter = wholeNumberFormatter; }
void setRounder() { // Prevents an exception from being thrown if (RoundingAlgorithm == RoundingAlgorithm.None) { Formatter.NumberRounder = null; return; } if (this.NumberRounder == NumberBoxNumberRounder.IncrementNumberRounder) { IncrementNumberRounder nr = new IncrementNumberRounder(); if (this.IncrementPrecision != 0) { nr.Increment = this.IncrementPrecision; } nr.RoundingAlgorithm = this.RoundingAlgorithm; Formatter.NumberRounder = nr; } else { SignificantDigitsNumberRounder nr = new SignificantDigitsNumberRounder(); if (this.SignificantDigitPrecision != 0) { nr.SignificantDigits = this.SignificantDigitPrecision; } nr.RoundingAlgorithm = this.RoundingAlgorithm; Formatter.NumberRounder = nr; } }
private void SetNumberBoxFormats() { // Format the input to 2 decimals, used for money-parameter input, could also use CurrencyFormatter IncrementNumberRounder moneyRounder = new IncrementNumberRounder { Increment = 0.01, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp }; DecimalFormatter moneyFormatter = new DecimalFormatter { IntegerDigits = 1, FractionDigits = 2, NumberRounder = moneyRounder }; // Format the input to 3 decimals, used for distance input IncrementNumberRounder distanceRounder = new IncrementNumberRounder { Increment = 0.001, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp }; DecimalFormatter distanceFormatter = new DecimalFormatter { IntegerDigits = 1, FractionDigits = 1, NumberRounder = distanceRounder }; // Format the input to whole numbers, used for the weekend premium precentage, could use PercentFormatter IncrementNumberRounder wholeNumberRounder = new IncrementNumberRounder { Increment = 1, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp }; DecimalFormatter premiumRateFormatter = new DecimalFormatter { IntegerDigits = 1, NumberRounder = wholeNumberRounder }; // Set the relevant formatter for the NumberBox PricePerKmInput.NumberFormatter = moneyFormatter; PricePerMinuteDayInput.NumberFormatter = moneyFormatter; PricePerMinuteNightInput.NumberFormatter = moneyFormatter; WeekendPremiumInput.NumberFormatter = premiumRateFormatter; }
public void When_UsingVariousIncrements(double value, double increment, double expected) { var sut = new IncrementNumberRounder(); sut.Increment = increment; var rounded = sut.RoundDouble(value); Assert.AreEqual(expected, rounded); }
public void When_FormatDoubleUsingIncrementNumberRounder() { var sut = new PercentFormatter(); IncrementNumberRounder rounder = new IncrementNumberRounder(); rounder.Increment = 0.5; sut.NumberRounder = rounder; var formatted = sut.FormatDouble(1.8); Assert.AreEqual("200.00%", formatted); }
public void When_UsingARoundingAlgorithmCore(double value, RoundingAlgorithm roundingAlgorithm, double expected) { var sut = new IncrementNumberRounder(); sut.Increment = 0.25; sut.RoundingAlgorithm = roundingAlgorithm; var rounded = sut.RoundDouble(value); Assert.AreEqual(expected, rounded); }
public void When_Increment_Is_Invalid_Then_Should_Throw(double increment, bool shouldThrow) { var sut = new IncrementNumberRounder(); if (shouldThrow) { Assert.ThrowsException <ArgumentException>(() => sut.Increment = increment); } else { sut.Increment = increment; } }
private void SetNumberBoxNumberFormatter() { IncrementNumberRounder rounder = new IncrementNumberRounder(); rounder.Increment = 0.25; rounder.RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp; DecimalFormatter formatter = new DecimalFormatter(); formatter.IntegerDigits = 1; formatter.FractionDigits = 2; formatter.NumberRounder = rounder; FormattedNumberBox.NumberFormatter = formatter; }
private void SetFormatersForNumberBoxes() { IncrementNumberRounder rounder = new IncrementNumberRounder(); rounder.Increment = 1; rounder.RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp; DecimalFormatter formatter = new DecimalFormatter(); formatter.IntegerDigits = 1; formatter.FractionDigits = 0; formatter.NumberRounder = rounder; nb1.NumberFormatter = formatter; nb2.NumberFormatter = formatter; nb3.NumberFormatter = formatter; nb4.NumberFormatter = formatter; }
private void SetNumberBoxNumberFormatter() { IncrementNumberRounder rounder = new IncrementNumberRounder { Increment = 0.25, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp }; DecimalFormatter formatter = new DecimalFormatter { IntegerDigits = 1, FractionDigits = 2, NumberRounder = rounder }; FormattedNumberBox.NumberFormatter = formatter; }
public SettingsViewModel(INavigationService navigationService, ISettingsService settingsService, IOService ioService, IMessenger messenger) : base(navigationService, messenger) { _settingsService = settingsService; _ioService = ioService; PropertyChanged += OnSettingsViewModelPropertyChanged; IncrementNumberRounder rounder = new IncrementNumberRounder(); rounder.Increment = 0.01; rounder.RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp; _decimalFormat.NumberRounder = rounder; //TODO: Glenn - Translate enums! MeasurementUnits.Add(DistanceUnitType.Kilometres.ToString()); MeasurementUnits.Add(DistanceUnitType.Miles.ToString()); SortTypes.Add(ActivitySort.StartTime.ToString()); SortTypes.Add(ActivitySort.EndTime.ToString()); }
private void NumberBox_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e) { NumberBox numberBox = sender as NumberBox; // define rounding IncrementNumberRounder numberRounder = new IncrementNumberRounder { Increment = 1 }; // define formatting DecimalFormatter formatter = new DecimalFormatter { IntegerDigits = 1, FractionDigits = 0, IsGrouped = false, NumberRounder = numberRounder }; numberBox.NumberFormatter = formatter; }
private void NumberBox_Loaded(object sender, RoutedEventArgs e) { NumberBox numberBox = sender as NumberBox; // define rounding IncrementNumberRounder numberRounder = new IncrementNumberRounder { Increment = 0.01 }; // define formatting DecimalFormatter formatter = new DecimalFormatter { IntegerDigits = 1, FractionDigits = 2, IsGrouped = false, IsDecimalPointAlwaysDisplayed = true, NumberRounder = numberRounder }; numberBox.NumberFormatter = formatter; }
public void Should_Throw_When_RoundingAlgorithm_Is_None() { var sut = new IncrementNumberRounder(); Assert.ThrowsException <ArgumentException>(() => sut.RoundingAlgorithm = RoundingAlgorithm.None); }