/// <summary> /// Recalculates (updates) all values of all units based on the source unit. /// </summary> /// <param name="sourceUnit"></param> /// <returns></returns> public static IEnumerable <IUnit> Recalculate(IUnit sourceUnit) { using (UnitsManager unitsManager = UnitsManager.CreateInstance()) { unitsManager.UpdateUnits(sourceUnit); return(unitsManager.Units); } }
public void ManagerTest() { var manager = new UnitsManager(new UnitCollection(UnitCollection.CreateUnits())); var meter = manager.GetUnit(UnitID.Meter); //manager.Units.First(p => p.Name.Equals("Meter", StringComparison.InvariantCultureIgnoreCase)); Assert.IsNotNull(meter, "The unit Meter was not found."); meter.Magnitude = 5; // 5m manager.UpdateUnits(meter); }
public void ConversionCorrectness() { var manager = new UnitsManager(new UnitCollection(UnitCollection.CreateUnits())); var inches = manager.GetUnit(UnitID.Inch); Assert.IsNotNull(inches); var feet = manager.GetUnit(UnitID.Foot); Assert.IsNotNull(feet); inches.Magnitude = 32; manager.UpdateUnits(sourceUnit: inches); Assert.AreEqual <double>(expected: 2.6666666666666667, actual: feet.Magnitude.Value, message: "Conversion from inches to feet is incorrect!"); }