Beispiel #1
0
        public Measure Divide(DerivedMeasure d)
        {
            if (d == this)
            {
                return(new BaseMeasure());
            }
            var a = new MeasureTerms();

            foreach (var e in Terms)
            {
                var c = new MeasureTerm {
                    Measure = e.Measure, Power = e.Power
                };
                a.Add(c);
            }
            foreach (var e in d.Terms)
            {
                var c = new MeasureTerm {
                    Measure = e.Measure, Power = e.Power
                };
                c.Power = -c.Power;
                a.Add(c);
            }
            a.RemoveAll(x => x.Power == 0);
            return(new DerivedMeasure(a));
        }
Beispiel #2
0
        public new static DerivedMeasure Random()
        {
            var m = new DerivedMeasure();

            m.SetRandomValues();
            return(m);
        }
Beispiel #3
0
        public Measure Multiply(DerivedMeasure m)
        {
            var t = new MeasureTerms();

            t.Add(new MeasureTerm(this, 1));
            foreach (var e in m.Terms)
            {
                t.Add(new MeasureTerm(e.Measure as BaseMeasure, e.Power));
            }
            return(new DerivedMeasure(t));
        }
 public void InitTests()
 {
     t  = new DerivedMeasure();
     m1 = new BaseMeasure("v");
     m2 = new BaseMeasure("t");
     m3 = new BaseMeasure("c");
     Measures.Instance.Add(m1);
     Measures.Instance.Add(m2);
     Measures.Instance.Add(m3);
     d1 = (DerivedMeasure)m1.Multiply(m2);
     d2 = (DerivedMeasure)m1.Multiply(m1);
     d3 = (DerivedMeasure)m3.Multiply(m3);
     d4 = (DerivedMeasure)m1.Multiply(m3);
 }
Beispiel #5
0
        public Measure Multiply(DerivedMeasure d)
        {
            var a = new MeasureTerms();

            foreach (var e in Terms)
            {
                var c = Clone(e);
                a.Add(c);
            }
            foreach (var e in d.Terms)
            {
                var c = Clone(e);
                a.Add(c);
            }
            return(new DerivedMeasure(a));
        }
Beispiel #6
0
        public Measure Multiply(DerivedMeasure d)
        {
            var a = new MeasureTerms();

            foreach (var e in Terms)
            {
                var c = new MeasureTerm {
                    Measure = e.Measure, Power = e.Power
                };
                a.Add(c);
            }
            foreach (var e in d.Terms)
            {
                var c = new MeasureTerm {
                    Measure = e.Measure, Power = e.Power
                };
                a.Add(c);
            }
            return(new DerivedMeasure(a));
        }
        public ActionResult Result(ComplexMathViewModel quantity)
        {
            var q1          = quantity.FirstQuantity;
            var q2          = quantity.SecondQuantity;
            var baseMeasure = BaseMeasure.Random();

            Measures.Instance.Add(baseMeasure);
            var derivedMeasure = DerivedMeasure.Random();

            Measures.Instance.Add(derivedMeasure);
            int i = 0;
            List <DerivedUnit> derivedUnits = new List <DerivedUnit>();

            foreach (string str in quantity.UnitList)
            {
                var baseUnit = new BaseUnit(baseMeasure, Unit.SetFactor(str), str, str);
                Units.Instance.Add(baseUnit);
                var derivedUnit = baseUnit.Exponentiation(quantity.PowerList[i]) as DerivedUnit;
                derivedUnit.Measure = derivedMeasure;
                Units.Instance.Add(derivedUnit);
                derivedUnits.Add(derivedUnit);
                i++;
                if (i == quantity.NumberOfUnits)
                {
                    break;
                }
            }
            for (int j = 0; j < quantity.NumberOfUnits - 1; j++)
            {
                var a = derivedUnits[j].Multiply(derivedUnits[j + 1]) as DerivedUnit;
                Units.Instance.Add(a);
                derivedUnits[j + 1] = a;
                if (j == quantity.NumberOfUnits - 2)
                {
                    q1.Unit = a.Name;
                    q2.Unit = a.Name;
                }
            }
            quantity = SetResults(quantity, q1, q2);
            return(View("Index", quantity));
        }
Beispiel #8
0
        public Measure Divide(DerivedMeasure d)
        {
            if (d == this)
            {
                return(Empty);
            }
            var a = new MeasureTerms();

            foreach (var e in Terms)
            {
                var c = Clone(e);
                a.Add(c);
            }
            foreach (var e in d.Terms)
            {
                var c = Clone(e);
                c.Power = -c.Power;
                a.Add(c);
            }
            a.RemoveAll(x => x.Power == 0);
            return(new DerivedMeasure(a));
        }
 public void CleanTests()
 {
     t = null;
 }