Esempio n. 1
0
            /// <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);
            }
Esempio n. 2
0
 public Project(MUDomain mud)
 {
     MUDomain = mud;
 }
Esempio n. 3
0
        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_));
                }
            }
        }
Esempio n. 4
0
        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));
            }
        }
Esempio n. 5
0
 /// <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));
 }