public static Quantity ToUnitsOfMeasureQuantity(this FM.Quantity input) { Metric metric = (input.Code != null) ? System.Metric(input.Code) : new Metric(new List <Metric.Axis>()); Exponential value = input.Value ?? 1; //todo: is this assumption correct? return(new Quantity(value, metric)); }
public void Validation() { UcumTestSet tests = new UcumTestSet(); foreach (UcumTestSet.Validation v in tests.Validations()) { try { Metric m = system.Metric(v.Unit); if (!v.Valid) { throw new AssertFailedException(string.Format($"Test {v.Id} succeeded, but should not have. Reason: '{v.Reason}'")); } } catch (Exception e) { if (e is AssertFailedException) { throw; } else if (v.Valid) { throw new Exception(string.Format("Test {0} failed", v.Id)); } } } }
public void MixedAlgebra() { Metric meter = system.Metric("m"); Metric second = system.Metric("s"); Quantity q = 4.0m * meter / second; Metric speed = meter / second; Assert.Equal(speed, q.Metric); }
public void ConversionPath() { Metric cm = system.Metric("cm"); Metric ci = system.Metric("Ci"); Metric bq = system.Metric("Bq"); List <Conversion> can = system.Conversions.Path(ci, x => x.To.Equals(bq)); Assert.Single(can); List <Conversion> cannot = system.Conversions.Path(cm, x => x.To.Equals(bq)); Assert.Null(cannot); }
public void Parsing() { Metric metric; metric = system.Metric("J/s"); Assert.Equal(2, metric.Axes.Count); metric = system.Metric("[ft_i].[lbf_av]/s"); Assert.Equal(3, metric.Axes.Count); }