Exemplo n.º 1
0
        public void Stoichiometry_CreateConversionTable2()
        {
            ChemicalEquation.PTable = new PeriodicTable("..\\..\\..\\Chemistry-Solver\\data\\ElementData.csv");

            var stoichiometry = new Stoichiometry();

            var equation = new ChemicalEquation("1Al_(1) + 1Cl_(2) --> 1Al_(1)Cl_(3)");

            equation.Balance();

            var canceledUnit  = $"{equation.Reactants[0].Item2}{equation.Reactants[0].Item1.ToString()} mass";
            var remainingUnit = $"{equation.Products[0].Item2}{equation.Products[0].Item1.ToString()} moles";

            stoichiometry.CreateConversionTable(equation);

            stoichiometry.UnitConverter.InputValue      = new ConversionValue(1d, new[] { canceledUnit }, null, equation.ToString());
            stoichiometry.UnitConverter.ConversionRatio = stoichiometry.UnitConverter.ConversionTable.GetConversionValue(canceledUnit, remainingUnit);
            var actual = stoichiometry.UnitConverter.PerformConversion();

            canceledUnit = $"{equation.Reactants[1].Item2}{equation.Reactants[1].Item1.ToString()} mass";

            stoichiometry.UnitConverter.InputValue      = new ConversionValue(1d, new[] { canceledUnit }, null, equation.ToString());
            stoichiometry.UnitConverter.ConversionRatio = stoichiometry.UnitConverter.ConversionTable.GetConversionValue(canceledUnit, remainingUnit);
            var actual2 = stoichiometry.UnitConverter.PerformConversion();
        }
        public void Stoichiometry_BaselineCase_Pass(string file, string group, double intensity, double baseline, Boolean useful)
        {
            Intensity     Testintensity     = new Intensity(file, group, intensity);
            Stoichiometry TestStoichiometry = new Stoichiometry(Testintensity, baseline);

            Assert.AreEqual(Testintensity.IntensityVal / baseline, TestStoichiometry.StoichiometryVal);
            Assert.AreEqual(useful, TestStoichiometry.usefulStoichiometry);
        }
        public void Stoichiometry_PeptidePeptideCase_Pass(string file, string group, double intensity1, double intensity2,
                                                          bool useful, double stoich)
        {
            Intensity     Testintensity1    = new Intensity(file, group, intensity1);
            Intensity     Testintensity2    = new Intensity(file, group, intensity2);
            Stoichiometry TestStoichiometry = new Stoichiometry(Testintensity1, Testintensity2);

            Assert.That(TestStoichiometry.StoichiometryVal, Is.EqualTo(stoich).Within(0.001));
            Assert.AreEqual(useful, TestStoichiometry.usefulStoichiometry);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Clears equation information from the window, effectively resetting it back to default values.
        /// </summary>
        /// <param name="sender">The button that sent the event.</param>
        /// <param name="e">The event's arguments.</param>
        public void ClearEquationInputButtonClick(object sender, EventArgs e)
        {
            stoichiometry_ = new Stoichiometry();
            model_.Equation.Reactants.Clear();
            model_.Equation.Products.Clear();

            tbox_equation_input.Clear();
            tbox_input_amount.Clear();
            tbox_output_amount.Clear();
            cbox_input_molecule.Items.Clear();
            cbox_output_molecule.Items.Clear();
        }
Exemplo n.º 5
0
        public double GetStoichiometricFactor(MolecularComponent comp)
        {
            var pair = Stoichiometry.FirstOrDefault(s => s.Component == comp);

            if (pair != null)
            {
                return(pair.StoichiometricFactor);
            }
            else
            {
                return(0);
            }
        }
Exemplo n.º 6
0
        public void Stoichiometry_CreateConversionTable()
        {
            ChemicalEquation.PTable = new PeriodicTable("..\\..\\..\\Chemistry-Solver\\data\\ElementData.csv");

            var stoichiometry = new Stoichiometry();

            var equation = new ChemicalEquation("1H_(2) + 1O_(2) --> 1H_(2)O_(1)");

            equation.Balance();

            var canceledUnit  = $"{equation.Reactants[0].Item2}{equation.Reactants[0].Item1.ToString()} moles";
            var remainingUnit = $"{equation.Reactants[1].Item2}{equation.Reactants[1].Item1.ToString()} moles";

            stoichiometry.CreateConversionTable(equation);

            stoichiometry.UnitConverter.InputValue      = new ConversionValue(14d, new[] { canceledUnit }, null, equation.ToString());
            stoichiometry.UnitConverter.ConversionRatio = stoichiometry.UnitConverter.ConversionTable.GetConversionValue(canceledUnit, remainingUnit);

            var actual   = stoichiometry.UnitConverter.PerformConversion();
            var expected = new ConversionValue(7d, new[] { remainingUnit }, null, equation.ToString());

            Assert.AreEqual(expected, actual);
        }