public void ShouldConvertToExpectedValue(Weight originalWeight, WeightUnit targetUnit, Weight expectedWeight) { // arrange // act var actualWeight = originalWeight.Convert(targetUnit); // assert actualWeight.Should().Be(expectedWeight); actualWeight.Unit.Should().Be(targetUnit); }
public void Test5c() { Weight weight = new Weight(); weight.NavigateTo(); Thread.Sleep(2000); weight.SetUnits(Helper.Units.Ounces, Helper.Units.Grams); int value = random.Next(0, 100000); double result = weight.Convert(value, "g"); int fractionLength = Helper.GetFractionLength(result); if (fractionLength > 0) { result = Math.Round(result, fractionLength); } Assert.AreEqual(weight.CalculateExpect(value, Helper.Units.Ounces, Helper.Units.Grams, fractionLength), result); }
public void Convert() { Weight d1 = new Weight(3.12m, Weight.UnitType.Kg); Assert.AreEqual(d1.Convert(Weight.UnitType.G).Value, 3120); }
public static void ImportMeasurements(ILogbook logbook, LogbookSettings settings, IList <WithingsWebServiceProxy.MeasurementInfo> measurements) { List <WithingsWebServiceProxy.MeasurementInfo> orderedMeasurements = new List <WithingsWebServiceProxy.MeasurementInfo>(measurements); if (settings.ImportMultipleEntries == LogbookSettings.MultipleEntriesUpdateStyles.Latest) { orderedMeasurements.Sort(new OldestToNewestComparer()); } else { orderedMeasurements.Sort(new NewestToOldestComparer()); } foreach (WithingsWebServiceProxy.MeasurementInfo measurement in orderedMeasurements) { // Skip ambiguous readings unless setting is selected. if (!settings.ImportAmbiguousEntries) { if (measurement.Source == WithingsWebServiceProxy.MeasurementInfo.SourceType.AmbiguousScaleReading) { continue; } } // Always import height if settings is selected (even if manual). if (settings.ImportHeightEntries && !float.IsNaN(measurement.HeightMeters)) { logbook.Athlete.HeightCentimeters = measurement.HeightMeters * 100; } // Skip manual entries unless settings is selected. if (!settings.ImportManualEntries) { if (measurement.Source == WithingsWebServiceProxy.MeasurementInfo.SourceType.ManualEntry || measurement.Source == WithingsWebServiceProxy.MeasurementInfo.SourceType.ProfileCreation) { continue; } } IAthleteInfoEntry athleteInfoEntry = logbook.Athlete.InfoEntries.EntryForDate(measurement.Time.Date); try { // Import weight if (!float.IsNaN(measurement.WeightKilograms) && measurement.WeightKilograms > 0) { //System.Diagnostics.Trace.WriteLine("Weight entry on " + measurement.Time.ToLocalTime().ToShortDateString() + " " + measurement.Time.ToLocalTime().ToShortTimeString() + "=" + measurement.WeightKilograms); float actualKilograms = measurement.WeightKilograms; float roundedKilograms = actualKilograms; switch (Plugin.Instance.Application.SystemPreferences.WeightUnits) { case Weight.Units.Kilogram: roundedKilograms = (float)Math.Round(actualKilograms + 0.005, 1); break; case Weight.Units.Pound: case Weight.Units.Stone: double pounds = Weight.Convert(actualKilograms + 0.005, Weight.Units.Kilogram, Weight.Units.Pound); pounds = Math.Round(pounds, 1); roundedKilograms = (float)Weight.Convert(pounds, Weight.Units.Pound, Weight.Units.Kilogram); break; } bool update = false; if (float.IsNaN(athleteInfoEntry.WeightKilograms)) { update = true; } else { switch (settings.ImportMultipleEntries) { case LogbookSettings.MultipleEntriesUpdateStyles.Earliest: case LogbookSettings.MultipleEntriesUpdateStyles.Latest: update = true; break; case LogbookSettings.MultipleEntriesUpdateStyles.Lowest: if (roundedKilograms < athleteInfoEntry.WeightKilograms) { update = true; } break; case LogbookSettings.MultipleEntriesUpdateStyles.Highest: if (roundedKilograms > athleteInfoEntry.WeightKilograms) { update = true; } break; } } if (update) { //System.Diagnostics.Trace.WriteLine("Weight updated to " + roundedKilograms + " kilograms. actual=" + actualKilograms); athleteInfoEntry.WeightKilograms = roundedKilograms; if (settings.UpdateBMI) { if (!float.IsNaN(logbook.Athlete.HeightCentimeters) && logbook.Athlete.HeightCentimeters > 0) { float meters = logbook.Athlete.HeightCentimeters / 100; athleteInfoEntry.BMI = (float)Math.Round(actualKilograms / (meters * meters), 1); //System.Diagnostics.Trace.WriteLine("BMI updated to " + athleteInfoEntry.BMI); } } } } // Import percent fat if (!float.IsNaN(measurement.PercentFat) && measurement.PercentFat > 0 && measurement.PercentFat < 100) { //System.Diagnostics.Trace.WriteLine("Percent Fat entry on " + measurement.Time.ToLocalTime().ToShortDateString() + " " + measurement.Time.ToLocalTime().ToShortTimeString() + "=" + measurement.PercentFat); float percent = measurement.PercentFat; bool update = false; if (float.IsNaN(athleteInfoEntry.BodyFatPercentage)) { update = true; } else { switch (settings.ImportMultipleEntries) { case LogbookSettings.MultipleEntriesUpdateStyles.Earliest: case LogbookSettings.MultipleEntriesUpdateStyles.Latest: update = true; break; case LogbookSettings.MultipleEntriesUpdateStyles.Lowest: if (percent < athleteInfoEntry.BodyFatPercentage) { update = true; } break; case LogbookSettings.MultipleEntriesUpdateStyles.Highest: if (percent > athleteInfoEntry.BodyFatPercentage) { update = true; } break; } } if (update) { percent = (float)Math.Round(percent + 0.005, 1); //System.Diagnostics.Trace.WriteLine("Body fat % updated to " + percent + "%"); athleteInfoEntry.BodyFatPercentage = percent; } } } catch { } } }