/// <summary> /// retrieve correspondent measure unit ( same physical quantity ) from given domain /// </summary> public MeasureUnit Related(MUDomain mud) { if (PhysicalQuantity.id == PQCollection.Adimensional.id) { return(MUCollection.Adimensional.adim); } return(mud.ByPhysicalQuantity(PhysicalQuantity).MU); }
public Project(MUDomain mud) { MUDomain = mud; }
void MeasureUnitTest() { { var measure = Measure.TryParse("10mm [Length]", null, CultureInfo.InvariantCulture); Assert.True(measure != null && measure.MU == MUCollection.Length.mm && measure.MU.PhysicalQuantity == PQCollection.Length && Abs(measure.Value - 10) < 1e-3); } var mud = new MUDomain(); // Length { var tol = mud.Length.DefaultTolerance; var mm = MUCollection.Length.mm; var m = MUCollection.Length.m; var km = MUCollection.Length.km; var inch = MUCollection.Length.inch; var ft = MUCollection.Length.ft; var yard = MUCollection.Length.yard; var links = MUCollection.Length.links; var a = (212356.435 * mm).ConvertTo(mud).Value; Assert.True(a.EqualsTol(tol, (212356.435).Convert(mm, mud))); Assert.True(a.EqualsTol(tol, (212.356435).Convert(m, mud))); Assert.True(a.EqualsTol(tol, (0.212356435).Convert(km, mud))); Assert.True(a.EqualsTol(tol, (8360.489567).Convert(inch, mud))); Assert.True(a.EqualsTol(tol, (696.7074639).Convert(ft, mud))); Assert.True(a.EqualsTol(tol, (232.2358213).Convert(yard, mud))); Assert.True(a.EqualsTol(tol, (1055.6173695617595).Convert(links, mud))); } // Temperature { var tol = mud.Temperature.DefaultTolerance; var C = MUCollection.Temperature.C; var K = MUCollection.Temperature.K; var F = MUCollection.Temperature.F; var C_ = 20.35; var K_ = 293.5; var F_ = 68.63; { var T = (C_ * C); Assert.True(T.ConvertTo(K).Value.EqualsTol(1e-1, K_)); Assert.True(T.ConvertTo(F).Value.EqualsTol(1e-2, F_)); } { var T = (K_ * K); Assert.True(T.ConvertTo(C).Value.EqualsTol(1e-2, C_)); Assert.True(T.ConvertTo(F).Value.EqualsTol(1e-2, F_)); } { var T = (F_ * F); Assert.True(T.ConvertTo(C).Value.EqualsTol(1e-2, C_)); Assert.True(T.ConvertTo(K).Value.EqualsTol(1e-1, K_)); } } }
void MeasureUnitTest() { { var measure = Measure.TryParse("10mm [Length]"); Assert.True(measure != null && measure.MU == MUCollection.Length.mm && measure.MU.PhysicalQuantity == PQCollection.Length && Abs(measure.Value - 10) < 1e-3); } var mud = new MUDomain(); // Length { var tol = mud.Length.DefaultTolerance; var mm = MUCollection.Length.mm; var m = MUCollection.Length.m; var km = MUCollection.Length.km; var inch = MUCollection.Length.inch; var ft = MUCollection.Length.ft; var yard = MUCollection.Length.yard; var links = MUCollection.Length.links; var a = (212356.435 * mm).ConvertTo(mud).Value; Assert.True(a.EqualsTol(tol, (212356.435).Convert(mm, mud))); Assert.True(a.EqualsTol(tol, (212.356435).Convert(m, mud))); Assert.True(a.EqualsTol(tol, (0.212356435).Convert(km, mud))); Assert.True(a.EqualsTol(tol, (8360.489567).Convert(inch, mud))); Assert.True(a.EqualsTol(tol, (696.7074639).Convert(ft, mud))); Assert.True(a.EqualsTol(tol, (232.2358213).Convert(yard, mud))); Assert.True(a.EqualsTol(tol, (1055.6173695617595).Convert(links, mud))); } // Temperature { var tol = mud.Temperature.DefaultTolerance; var C = MUCollection.Temperature.C; var K = MUCollection.Temperature.K; var F = MUCollection.Temperature.F; var C_ = 20.35; var K_ = 293.5; var F_ = 68.63; { var T = (C_ * C); Assert.True(T.ConvertTo(K).Value.EqualsTol(1e-1, K_)); Assert.True(T.ConvertTo(F).Value.EqualsTol(1e-2, F_)); } { var T = (K_ * K); Assert.True(T.ConvertTo(C).Value.EqualsTol(1e-2, C_)); Assert.True(T.ConvertTo(F).Value.EqualsTol(1e-2, F_)); } { var T = (F_ * F); Assert.True(T.ConvertTo(C).Value.EqualsTol(1e-2, C_)); Assert.True(T.ConvertTo(K).Value.EqualsTol(1e-1, K_)); } } // Linear acceleration { var a = 4.4 * MUCollection.Acceleration.mm_s2; var b = a.ConvertTo(MUCollection.Acceleration.m_s2).Value; Assert.True(b.EqualsTol(1e-4, 0.0044)); } // Angular speed { var a = (2.5) * MUCollection.AngularSpeed.rad_s; var b = a.ConvertTo(MUCollection.AngularSpeed.deg_s); Assert.True(b.Value.EqualsTol(1e-3, 143.239)); Assert.True(AngularAcceleration.Auto(MUCollection.PlaneAngle.deg, MUCollection.Time.sec) .Equals(MUCollection.AngularSpeed.deg_s)); Assert.True(AngularAcceleration.Auto(MUCollection.PlaneAngle.rad, MUCollection.Time.sec) .Equals(MUCollection.AngularSpeed.rad_s)); } // Angular acceleration { var a = (2.5) * MUCollection.AngularAcceleration.rad_s2; var b = a.ConvertTo(MUCollection.AngularAcceleration.deg_s2); Assert.True(b.Value.EqualsTol(1e-3, 143.239)); Assert.True(AngularAcceleration.Auto(MUCollection.PlaneAngle.deg, MUCollection.Time.sec) .Equals(MUCollection.AngularAcceleration.deg_s2)); Assert.True(AngularAcceleration.Auto(MUCollection.PlaneAngle.rad, MUCollection.Time.sec) .Equals(MUCollection.AngularAcceleration.rad_s2)); } // Bending moment { var Nmm = MUCollection.BendingMoment.Auto(MUCollection.Force.N, MUCollection.Length.mm); Assert.True(Nmm.Equals(MUCollection.BendingMoment.Nmm)); var a = 1.78 * Nmm; var b = a.ConvertTo(MUCollection.BendingMoment.kNm); Assert.True(b.Value.EqualsTol(1e-8, 1.78e-6)); } }
/// <summary> /// retrieve measure unit tolerance based on the domain default length tolerance /// </summary> public double UnitTolerance(MUDomain mud) { return(mud.Length.DefaultTolerance.Convert(mud.Length.MU, Unit)); }