Exemplo n.º 1
0
        public void MultiplyBaseWithDerivedTest()
        {
            var m1 = new BaseMeasure("v");

            Measures.Instance.Add(m1);
            var m  = m1.Multiply(m1);
            var m2 = m1.Multiply(m);

            Assert.AreEqual("v^3", m2.Formula());
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        public void MultiplySameMeasuresTest()
        {
            var m1 = new BaseMeasure("s");

            Measures.Instance.Add(m1);
            var m = m1.Multiply(m1);

            Assert.AreEqual("s^2", m.Formula());
        }
Exemplo n.º 4
0
        [TestMethod] public void MultiplyTest()
        {
            var m1 = new BaseMeasure("v");
            var m2 = new BaseMeasure("t");

            Measures.Instance.Add(m1);
            Measures.Instance.Add(m2);
            var m = m1.Multiply(m2);

            Assert.AreEqual("v^1*t^1", m.Formula());
        }
Exemplo n.º 5
0
        public ActionResult Result(FormulaeViewModel formulae)
        {
            DerivedMeasure derivedMeasure;
            var            m1 = new BaseMeasure(formulae.MeasureList[0]);
            var            m2 = new BaseMeasure(formulae.MeasureList[1]);

            Measures.Instance.Add(m1);
            Measures.Instance.Add(m2);

            if (formulae.SelectedOperation == "Divide")
            {
                derivedMeasure = m1.Divide(m2) as DerivedMeasure;
            }
            else
            {
                derivedMeasure = m1.Multiply(m2) as DerivedMeasure;
            }
            Measures.Instance.Add(derivedMeasure);
            int i = 0;
            List <DerivedUnit> derivedUnits = new List <DerivedUnit>();

            foreach (string str in formulae.UnitList1)
            {
                var baseUnit = new BaseUnit(m1, Unit.SetFactor(str), str, str);
                Units.Instance.Add(baseUnit);
                var derivedUnit = baseUnit.Exponentiation(formulae.PowerList1[i]) as DerivedUnit;
                derivedUnit.Measure = derivedMeasure;
                Units.Instance.Add(derivedUnit);
                derivedUnits.Add(derivedUnit);
                i++;
                if (i == formulae.NumberOfUnits1)
                {
                    i = 0;
                    break;
                }
            }
            foreach (string str in formulae.UnitList2)
            {
                var baseUnit = new BaseUnit(m2, Unit.SetFactor(str), str, str);
                Units.Instance.Add(baseUnit);
                DerivedUnit derivedUnit;
                if (formulae.SelectedOperation == "Divide")
                {
                    derivedUnit = baseUnit.Exponentiation(-formulae.PowerList2[i]) as DerivedUnit;
                }
                else
                {
                    derivedUnit = baseUnit.Exponentiation(formulae.PowerList2[i]) as DerivedUnit;
                }
                derivedUnit.Measure = derivedMeasure;
                Units.Instance.Add(derivedUnit);
                derivedUnits.Add(derivedUnit);
                i++;
                if (i == formulae.NumberOfUnits2)
                {
                    break;
                }
            }
            for (int j = 0; j < formulae.NumberOfUnits1 + formulae.NumberOfUnits2 - 1; j++)
            {
                var a = derivedUnits[j].Multiply(derivedUnits[j + 1]) as DerivedUnit;
                Units.Instance.Add(a);
                derivedUnits[j + 1] = a;
                if (a.Name == null)
                {
                    a.Name = "1";
                }
                if (j == formulae.NumberOfUnits1 + formulae.NumberOfUnits2 - 2)
                {
                    formulae.Result = "Unit: " + a.Name + " Measure: " + derivedMeasure.Name ?? derivedMeasure.Terms[0].MeasureId;
                }
            }
            return(View("Index", formulae));
        }